AES加密
程序员文章站
2022-05-25 20:27:20
最近做的一个项目,需要对传输的参数进行aes加密,所以就顺便的了解了一下,因为这种东西,肯定都是有写好的,现成的,所有这里就简单的记录一下,方便以后自己和大家查找。 首先附上百度的关于AES的百度百科链接,如果觉得看的不是很明白的话,这里有一个漫画版的。然后在附上一个在线的加密解密的网站链接。方便大 ......
最近做的一个项目,需要对传输的参数进行aes加密,所以就顺便的了解了一下,因为这种东西,肯定都是有写好的,现成的,所有这里就简单的记录一下,方便以后自己和大家查找。
首先附上百度的关于aes的,如果觉得看的不是很明白的话,。然后在附上一个的网站链接。方便大家自行的查询与应用。好的废话不多说,下面直接上代码。
1 <!doctype html> 2 <html lang="en"> 3 <head> 4 <meta charset="utf-8"> 5 <title>title</title> 6 7 </head> 8 9 <!--<script src="https://sellpow-html.oss-cn-beijing.aliyuncs.com/public/js/aes.js"></script>--> 10 <!--<script src="https://cdn.bootcss.com/aes-js/3.1.2/index.js"></script>--> 11 <script src="http://react.file.alimmdn.com/aes.js" type="text/javascript" charset="utf-8"></script> 12 <body> 13 14 <script> 15 var key = cryptojs.enc.utf8.parse("8nonwyjthesyswpm");//密钥 16 var plainttext = '{"a":1}'; // 需要传输的明文 17 var encrypteddata = cryptojs.aes.encrypt(plainttext, key, { 18 mode: cryptojs.mode.ecb,//这里是选择的模式 19 padding: cryptojs.pad.pkcs7//这里也是选择的一个模式 20 }); 21 console.log("加密前:"+plainttext); 22 console.log("加密后:"+encrypteddata); 23 24 encrypteddata = encrypteddata.ciphertext.tostring(); 25 var encryptedhexstr = cryptojs.enc.hex.parse(encrypteddata); 26 var encryptedbase64str = cryptojs.enc.base64.stringify(encryptedhexstr); 27 28 var decrypteddata = cryptojs.aes.decrypt(encryptedbase64str, key, { 29 mode: cryptojs.mode.ecb, 30 padding: cryptojs.pad.pkcs7 31 }); 32 33 var decryptedstr = decrypteddata.tostring(cryptojs.enc.utf8); 34 35 console.log("解密后:"+decryptedstr); 36 37 var pwd = "pcsuftgog9/qpqmqxsucrq=="; 38 //加密服务端返回的数据 39 var decrypteddata = cryptojs.aes.decrypt(pwd, key, { 40 mode: cryptojs.mode.ecb, 41 padding: cryptojs.pad.pkcs7 42 }); 43 44 console.log("解密服务端返回的数据:"+decryptedstr); 45 46 </script> 47 </body> 48 </html>
我在这个程序中使用的是ecb模式,所以就没有什么偏移量的问题了,如果你们使用的是其他的模式,请增加偏移量。