闲来无事,方便不能上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按钮,即可。