RSA加密解密web应用

RSA加密

    • rsa怎么用
    • 坑点

rsa是一种非对称加密
详细概念看百度吧,具体算法内容日后更新

所以,简要记录一下rsa怎么用和我沙雕的遇到的问题吧。

rsa怎么用

rsa是非对称加密,自然就有公钥和私钥。公钥加密,私钥解密。
最简单的使用方式就是通过openssl生成一对公钥和私钥。个人不推荐在一些网站上去申请rsa的公私密钥。线上申请的话很可能暴露密钥。
然后我就在web后端和前端放置了已经生成好了的rsa密钥。
这种方式其实并不那么安全。
更好的方式是通过java代码自动生成一对公私密钥。通过接口暴露给前端。这要公私密钥是动态变化的,保密性更强。
最后YY一下无论是洋葱浏览器,还是Duck搜索引擎都是在追求一件事,就是网络上的私密性。rsa完全可以用于c-s-c这种c对c只发送私钥的方式进行通信。

坑点

Java代码只识别pkcs8格式密钥。如果你用的是pkcs1格式请转换成pkcs8格式

openssl>pkcs8 -topk8 -inform PEM -in rsa_key.pem -outform PEM –nocrypt

rsa_key.pem 是你的密钥文件

openssl>genrsa -out rsa_private_key.pem 1024

上方是生成私钥命令#注意#我这边用的是Linux,必须要先安装openssl,然后通过键入openssl进入openssl界面才可以。

生成公钥

rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem

js使用密钥的时候有’-----BEGIN PUBLIC KEY-----‘和’-----END PUBLIC KEY-----’,而 java没有 以上代码
js端我用的是encrypt.js。

	https://cdn.bootcss.com/jsencrypt/3.0.0-beta.1/jsencrypt.js 

Java用的是javax.crypto.Cipher包

推荐
java 实现 https://blog.csdn.net/qy20115549/article/details/83105736

JS 实现 https://blog.csdn.net/zhangjianying/article/details/79873392

最后,如果有和我一样懒得,觉得用静态就可以的 可以看这个 https://blog.csdn.net/u013068887/article/details/84402564

你可能感兴趣的:(RSA加密解密web应用)