AES ECB Pkcs7 demo

发布时间 2023-04-10 00:01:58作者: AngDH

 

const CryptoJS = require("crypto-js");

// 定义加密密钥
const key = "d080d92911318b86e3eb95534c927b82";

// 定义需要加密的数据
const data = `ru55PtuXxQSIeNgtvG82WcmSncgj2bS1{"gjbq":"1","fpztDm":["01","02","03","04"],"fplyDm":"0","fplxDm":[],"kprqq":"2023-03-25","kprqz":"2023-04-10","tfrqq":"2023-03-25","tfrqz":"2023-04-10","dtBz":"N","pageNumber":1,"pageSize":10}`;

// 将密钥转换为UTF8编码
const utf8Key = CryptoJS.enc.Utf8.parse(key);

// 将数据转换为UTF8编码
const utf8data = CryptoJS.enc.Utf8.parse(data);

// 进行加密
const encryptedData = CryptoJS.AES.encrypt(utf8data, utf8Key, {
  mode: CryptoJS.mode.ECB,
  padding: CryptoJS.pad.Pkcs7,
});

// 输出加密后的结果
console.log(encryptedData.toString());

 

 

 

 

- AES加密算法:AES是一种对称加密算法,它可以对数据进行加密和解密。它使用一个密钥来加密数据,这个密钥必须保密,否则就会导致数据泄露。在这段代码中,我们使用了CryptoJS库中的AES加密算法来对数据进行加密。
- ECB模式:ECB是一种加密模式,它将数据分成若干个块,每个块都独立地进行加密。这种模式的缺点是容易受到攻击,因为相同的明文块会被加密成相同的密文块。在这段代码中,我们使用了ECB模式来加密数据。
- Pkcs7填充:Pkcs7是一种填充方式,它可以将数据填充到指定的块大小。在这段代码中,我们使用了Pkcs7填充方式来填充数据。

 

 

const utf8Key = CryptoJS.enc.Utf8.parse(key);
const utf8data = CryptoJS.enc.Utf8.parse(data);
const encryptedData = CryptoJS.AES.encrypt(utf8data, utf8Key, {
  mode: CryptoJS.mode.ECB,
  padding: CryptoJS.pad.Pkcs7,
});
其中,key是加密密钥,data是需要加密的数据。我们首先将密钥和数据转换为UTF8编码,然后使用CryptoJS.AES.encrypt方法进行加密。加密时,我们指定了ECB模式和Pkcs7填充方式。最后,我们将加密后的结果输出到控制台: