欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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模式,所以就没有什么偏移量的问题了,如果你们使用的是其他的模式,请增加偏移量。