端对端加密的iOS键盘
闲来无事,方便不能上tg的小伙伴,
做了一个iOS的端对端加密的keyboard,
理论上可以应用于所有app。
简单使用方式:
下载地址:https://fir.im/k1vh
pwd: test124
update: 2019-01-23 v205
增加了一个新功能,因为我昨天发现在有的情况下没有键盘弹出,比如看朋友圈长文本的时候,进到详情之后没有办法弹出键盘,
这样想decode就比较蛋疼,所以增加了todayextension,
当复制完encode之后,下滑弹出notification,然后右划显示todayview的时候,
会显示decode的label,如果在app的config里设置了自动decode todayview,那么会自动显示,
或者手动点击todayview上的decode按钮,
1)创建一对rsa密钥,或者使用这个脚本快速创建,
https://gist.github.com/lvjian700/635368d6f1e421447680
保留der公钥和p12格式的私钥,
公钥名字随便起无所谓,自己保存,私钥命名按下列方式,galenzhao.pwd123456.p12,发送给其他人用来decode,
我自己的私钥,想要decode的自行下载,p12 file
通过.分为三部分,1)在发送加密文本时保留的前缀,用于decode时匹配对应私钥,建议使用自己的username尽量保持唯一,否则其他人decode时无法匹配私钥数据。
第二部分为p12的密码,
请使用这个脚本创建,https://gist.github.com/galenzhao/09e78ca06083d48b4504a8c20fccba57
iOS上无法获取仅有私钥的p12,keyref,所以直接导出ASN.1 的DER格式 公私钥。
自己的公钥名字随便起,推荐username.der,私钥给出去的时候需要按照如下命名方式,
username.private.der,前边username随便起,尽量唯一,后边.private.der为固定后缀,用于导入keychain。
我自己的私钥,想要decode的自行下载,der file
公钥不小心泄漏,请重新下载!!!
2)使用itunes等,将公钥导入到app folder,同时想要支持decode他人的私钥导入
3)在系统设置中把键盘添加上,同时打开完全访问,因为需要获取剪贴板来decode,app无联网,无需担心风险。
代码在此:https://github.com/galenzhao/ioskeyboard
4)打开app,进入config,第一个public填入导入的公钥名字,
第二个private prefix填写上私钥的名字的第一部分,也就是加密完string的prefix,
后边两个switch是当decode时候,将结果输入到当前textfield还是 toast一下,随意配置。
最后点 gen rsakey,将会把app folder的公私钥导入app内部存储,这样itunes就不能再次导出这些文件。
5)进入其他app,可以直接使用这个键盘输入只支持英文,或者其他键盘输入其他文本,然后想要加密发送时,
切换成这个键盘,在文本框光标处于最末尾时,点击lock按钮,将自动把文本框内容替换成加密后的,
6)当需要decode的时候,把加密文本长按复制,注意要保持完整。然后在键盘点unlock按钮,即可。