RSA加密解密-公钥解密

技术:jsencrypt.js
这个前端库有一个特点:公钥加密、私钥解密,没有公钥解密(只能前端公钥加密后台私钥解密)
开发中遇到的问题:后端使用私钥加密,前端需要使用公钥进行解密,返回的结果为false?
解决办法:实现双向加密,就是使用两套秘钥。
后端有两对秘钥:privateKeyA,publicKeyA,privateKeyB,publicKeyB(privateKey:私钥 publicKey:公钥)
后端拿着:privateKeyA,publicKeyB
前端拿着:publicKeyA,privateKeyB

前端加密时用publicKeyA,后端用privateKeyA解密
后端加密时用publicKeyB,前端用privateKeyB解密

这样就能保证,虽然私钥和公钥都在前端代码中,但是这两个并不是一对,就算是全部拿到,也无法成功解密。

前端代码:

    /**
     * RSA解密
     */
    decryptRSA:str=>{
        let encryptor = new JSEncrypt(); // 新建JSEncrypt对象
        let privateKey = "privateKeyB";//后台提供
        encryptor.setPrivateKey(privateKey);//设置私钥
        let decrytStr = encryptor.decrypt(str);
        return decrytStr
    },
    /**
     * RSA加密
     */
    encryptRSA:str=>{
        let encryptor = new JSEncrypt(); // 新建JSEncrypt对象
        let publicKey = "publicKeyA";  //后台提供
        encryptor.setPublicKey(publicKey); // 设置公钥
        let rsaPassWord = encryptor.encrypt(str);
        return rsaPassWord;
    },
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容