利用现代浏览器的API轻松实现非对称加密

非对称加密才是在互联网上传递敏感信息的科学方法,只是需要付出一点点的学习成本。

基本原理是,当A要发送加密信息给B时,需要B首先生成一对密钥:公钥和私钥。

公钥可以光明正大地发给A,私钥则妥善保存在本地,不能告诉(发送给)任何人。A收到B的公钥后,用B的公钥对信息进行加密。加密后的信息,可以光明正大地发给B。这个加密信息,只有B的私钥可以解开。

由于互联网上传递的只有B的公钥和加密后的信息,第三方监控者即使都拿到了,但由于不掌握B的私钥,也就无法解密。

简而言之,加密用一个密钥,解密用另一个密钥,这两个密钥是一对。这就是非对称加密。

已本地化部署到:https://blog.lucyqin.cn/rsa。这是一个HTML+JS+CSS的纯静态页面,调用了浏览器内置的Web Crypto API,采用的是RSA算法,默认为2048位,可以在encryption-helper.js中修改modulusLength参数为1024、2048、3072、4096位中的一种。

支持加解密纯文本,也支持直接加解密文件。

为了最大程度让使用者易于理解,对页面进行了汉化,并增加了必要的提示。

原始项目地址:https://github.com/galehouse5/rsa-webcrypto-tool