锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

javascript中使用RSA加密解密

时间:2023-12-20 01:07:02 电位器rsa0k11v901s

RSA加密解密

    • 问题1:公钥和私钥从何而来:
    • 问题2:如果后端加密,前端解密
    • 代码

问题1:公钥和私钥从何而来:

https://www.bejson.com/enc/rsa/
去官网生成唯一的公钥和私钥,也就是唯一的密钥对
公钥加密,私钥解密

问题2:如果后端加密,前端解密

  • 私钥跟随后端
  • 拿到后端通过的密文后,直接解密。如果解密后的数据与预期数据不同,与后端沟通的原因是什么?
  • 下面显示了一个:后端加密时,首先将字符串转换成json对象 再加密;所以前端解密后要重新加密json对象转换为字符串

代码

<!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <meta http-equiv="X-UA-Compatible" content="IE=edge">     <meta name="viewport" content="width=device-width, initial-scale=1.0">     <title>Document</title>     <!-- 引入jsencrypt.js文件 -->     <script src="https://cdn.bootcss.com/jsencrypt/3.0.0-beta.1/jsencrypt.js"></script> </head> <body>    <script>     //公钥     var PUBLIC_KEY = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC3 2kBT EJq8PqSrleCgsddWtwuIDaNtSwWunuyaRuSGWhBJxFApWXv8xfdchhbw5ti/2z3w5ipAufXJ/5R9FwBGSGEivbpUUCpVuk7iFY8vE yfZTobEkfJ0vsO9FllG9AofYDAP5dlKYfTnXpNv7HrPrZfleB5HOtXS1OMt02wIDAQAB';     //私钥     var PRIVATE_KEY = 'MIICXAIBAAKBgQC3 2kBT EJq8PqSrleCgsddWtwuIDaNtSwWunuyaRuSGWhBJxFApWXv8xfdchhbw5ti/2z3w5ipAufXJ/5R9FwBGSGEivbpUUCpVuk7iFY8vE yfZTobEkfJ0vsO9FllG9AofYDAP5dlKYfTnXpNv7HrPrZfleB5HOtXS1OMt02wIDAQABAoGBALb3QIL8hGjQt JNc7EwvcMLHdEYu5PHiZbkotZFE9BVETSjWCFNI6WpKT8Z7C/xeOC6opB52F2ClMhkHfeTU5SpQx2YoRXjQGxCigTaRvlMo2q8q05sy4cxKpE 7c4yMaZSPldrx5HjLLlJzso7xngtHqnP/wQsbNnARhQ31tIhAkEA58D7SxU0i8UWSR1hPrXC4iPfDXTwtFOVyyHWCCId5fNFH6omlyHzleH4WLSYe/ZBAJRpPUqUeLlSKtkzonIgsQJBAMs693OXOeQpZdWUFlEl0hvcQFclaSID2TPbcL/doMslYd7tegyhBIrQRIzUQooZF5lbcsBLwb1hFPx0N7E6MUsCQH6pIC5W9pL1MkrffchyOoKxrDSElxFXJWURpxJm4wRMQpkdu12aNrDSAZMpkLUfT0Nr2WCgJCkez OPNgMwcOECQGlMMBHv9MrGuECk7bs1wVs2DxAYDhTVsaAwvoZqqnkW8VKz8FzCwLu7lQjyoVc0EQogW6BOoB8jQeBbxs9Iu2kCQAFzAhRnjj1Rn2uvMqRCva ez3RPaLHK4BzC5UdgF/qTu58 K29UqKSLenMB8ZZ1VQIJ83VnKSiIyHqeHBjl6LE=';     //用公钥加密     var encrypt = new JSEncrypt();
    encrypt.setPublicKey('-----BEGIN PUBLIC KEY-----' + PUBLIC_KEY + '-----END PUBLIC KEY-----');
    var encrypted = encrypt.encrypt("张三");
    console.log('加密后数据:%o', encrypted);
    
    //使用私钥解密
    var decrypt = new JSEncrypt();
    decrypt.setPrivateKey('-----BEGIN RSA PRIVATE KEY-----'+PRIVATE_KEY+'-----END RSA PRIVATE KEY-----');
    var uncrypted = decrypt.decrypt(encrypted); 
    console.log('解密后数据:%o', uncrypted); // 张三


    // 下面这段密文就是后端传过来的json
    var uncrypted1 = decrypt.decrypt("evHC57KB+RRQdSZmFWoAR7KcViMW+P0GGjhIvOociFS7QWJwE63A+8XqGJuVs+WOVNO/NTuYEd78QJu8gHcVJvt3QumYqt7EPVNekQ2OTRuyi+bTSF8Xy9tj+GXs8wF+3jbJYDdOwgEciXVFxbWEXwH6/pu44FIQEjL376RetZg=");
    console.log('解密后数据:%o', JSON.parse(uncrypted1) ); // 安杰
    // 如果没转成字符串的话
    console.log('解密后数据:%o', uncrypted1); // \\u5b89\\u6770\
    </script> 
</body>
</html>
锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章