JS和Java都支持AES加密和解密,其中使用AES-128、AES-192和AES-256。在JS中,我們可以使用CryptoJS庫進行加密和解密操作。在Java中,可以使用javax.crypto包中的類實現AES加密和解密。
下面分別介紹JS和Java中使用AES進行加密和解密的代碼。
// JS代碼示例 // 引入CryptoJS庫 <script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.9-1/crypto-js.min.js"></script> // 加密 var key = CryptoJS.enc.Utf8.parse("1234567890qwerty"); // 秘鑰 var iv = CryptoJS.enc.Utf8.parse("abcdef0123456789"); // 向量 var word = "Hello World!"; // 需要加密的明文 var encrypted = CryptoJS.AES.encrypt(word, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 }); console.log(encrypted.toString()); // 加密后的密文 // 解密 var decrypted = CryptoJS.AES.decrypt(encrypted, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 }); console.log(decrypted.toString(CryptoJS.enc.Utf8)); // 解密后的明文
// Java代碼示例 // 導入所需的包 import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import java.util.Base64; // 加密 String key = "1234567890qwerty"; // 秘鑰 String iv = "abcdef0123456789"; // 向量 String word = "Hello World!"; // 需要加密的明文 SecretKeySpec secretKeySpec = new SecretKeySpec(key.getBytes("UTF-8"), "AES"); Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec, new IvParameterSpec(iv.getBytes("UTF-8"))); byte[] encrypted = cipher.doFinal(word.getBytes("UTF-8")); System.out.println(Base64.getEncoder().encodeToString(encrypted)); // 加密后的密文 // 解密 byte[] encryptedBytes = Base64.getDecoder().decode("h8x/Cd/xBuz/H6T1WzS/wg=="); // 密文 cipher.init(Cipher.DECRYPT_MODE, secretKeySpec, new IvParameterSpec(iv.getBytes("UTF-8"))); byte[] decrypted = cipher.doFinal(encryptedBytes); System.out.println(new String(decrypted, "UTF-8")); // 解密后的明文
以上是JS和Java中使用AES進行加密和解密的代碼示例。
上一篇php 修改密碼demo
下一篇css文字無線循環滾動