對(duì)稱加密是一種加密方法,它使用相同的密鑰進(jìn)行加密和解密。 在JavaScript和Java中,對(duì)稱加密很常見(jiàn),我們使用AES(Advanced Encryption Standard)算法來(lái)進(jìn)行加密和解密。
在JavaScript中,我們可以使用CryptoJS庫(kù)來(lái)實(shí)現(xiàn)對(duì)稱加密。以下是一個(gè)使用AES加密/解密的JavaScript代碼示例:
// 加密 var ciphertext = CryptoJS.AES.encrypt('Hello World!', 'secret key 123').toString(); // 解密 var bytes = CryptoJS.AES.decrypt(ciphertext, 'secret key 123'); var plaintext = bytes.toString(CryptoJS.enc.Utf8);
在Java中,我們可以使用JCE(Java Cryptography Extension)來(lái)實(shí)現(xiàn)對(duì)稱加密。以下是一個(gè)使用AES加密/解密的Java代碼示例:
// 加密 Cipher cipher = Cipher.getInstance("AES"); SecretKeySpec secretKeySpec = new SecretKeySpec("secret key 123".getBytes(), "AES"); cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec); byte[] encrypted = cipher.doFinal("Hello World!".getBytes()); // 解密 Cipher cipher = Cipher.getInstance("AES"); SecretKeySpec secretKeySpec = new SecretKeySpec("secret key 123".getBytes(), "AES"); cipher.init(Cipher.DECRYPT_MODE, secretKeySpec); byte[] decrypted = cipher.doFinal(encrypted); String plaintext = new String(decrypted);
無(wú)論在JavaScript還是Java中,使用對(duì)稱加密算法都需要注意保護(hù)密鑰的安全性。因?yàn)槊荑€一旦泄漏,加密數(shù)據(jù)也就不再安全了。