关于RSA+AES加密

Lime
  • 14

今天,我通过RSA+AES来实现注册中密码的加密传输(1,RSA库:转到Github 2,AES库:转到Github
JS代码如下,附其运行结果(其中一次,AES,RSA加密的值是会更变的):
其中一次的运行结果
问题:
1,请问我的JS有没有逻辑上的问题;
2,请问PHP应该怎么解密RSA与AES(如果有库就更好了);
3,我的思路:
客户端(JavaScript):
AES 加密 原始用户密码
RSA 公钥 加密 AES秘钥
---数据传输---
服务端(PHP):
RSA 私钥 解密 获得 AES秘钥
AES 解密 获得 原始用户密码
再通过加密 原始用户密码 获得 加密用户密码 存储到 数据库 中
这样可以吗?

       $(function () {
        //加密部分
        //AES
        var password_form="QAQ";
        console.log(password_form);
        var password = CryptoJS.AES.encrypt(password_form,'Lime Website').toString();
        console.log(password);
        //RSA
        var public_key = $("#inputPublic_key").val();
        console.log(public_key);
        var private_key = $("#inputPrivate_key").val();
        console.log(private_key);
        var encrypt = new JSEncrypt();
        encrypt.setPublicKey(public_key);
        var AES_key = encrypt.encrypt(password);
        console.log(AES_key);
        
        //解密部分(实际应由服务端完成)
        //RSA
        var decrypt = new JSEncrypt();
        decrypt.setPrivateKey(private_key);
        var AES_key_decrypt = decrypt.decrypt(AES_key);
        console.log(AES_key_decrypt);
        //AES
        var bytes = CryptoJS.AES.decrypt(AES_key_decrypt,'Lime Website');
        var password_decrypt = bytes.toString(CryptoJS.enc.Utf8);
        console.log(password_decrypt);
    });

回复
阅读 1.4k
1 个回答

恭喜你,重新发明了https

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏