欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

js和java 加密解密方法

李明濤1年前6瀏覽0評論

隨著網絡技術的發展,信息安全問題變得越來越重要。加密技術成為網絡安全的重要組成部分。在JavaScript和Java中,都提供了加密解密的API。

JavaScript中提供了Crypto API,在前端頁面中可以直接使用它來進行加密和解密。以下是一個使用Crypto API進行AES加密的例子:

function encryptAES(message, key) {
const encKey = new TextEncoder().encode(key);
const encoded = new TextEncoder().encode(message);
return crypto.subtle.importKey(
'raw', encKey, {name: 'AES-CBC', length: 256},
true, ['encrypt']
).then((key) => {
return window.crypto.subtle.encrypt(
{name: 'AES-CBC', iv: window.crypto.getRandomValues(new Uint8Array(16))},
key,
encoded
)
}).then((encrypted) => {
return btoa(String.fromCharCode.apply(null, new Uint8Array(encrypted)));
});
}

Java中提供了JCA(Java Cryptographic Architecture)和JCE(Java Cryptographic Extension)。使用這兩個API,可以進行常見的加密算法,例如DES、AES、RSA等。以下是一個使用AES加密和解密的例子:

import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
public class AES {
public static String encrypt(String text, String key, String iv) throws Exception {
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
SecretKeySpec keySpec = new SecretKeySpec(key.getBytes("UTF-8"), "AES");
IvParameterSpec ivSpec = new IvParameterSpec(iv.getBytes("UTF-8"));
cipher.init(Cipher.ENCRYPT_MODE, keySpec, ivSpec);
byte[] encrypted = cipher.doFinal(text.getBytes("UTF-8"));
return new String(Base64.encodeBase64(encrypted));
}
public static String decrypt(String encryptedText, String key, String iv) throws Exception {
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
SecretKeySpec keySpec = new SecretKeySpec(key.getBytes("UTF-8"), "AES");
IvParameterSpec ivSpec = new IvParameterSpec(iv.getBytes("UTF-8"));
cipher.init(Cipher.DECRYPT_MODE, keySpec, ivSpec);
byte[] decrypted = cipher.doFinal(Base64.decodeBase64(encryptedText.getBytes("UTF-8")));
return new String(decrypted);
}
}

總的來說,JavaScript和Java提供了方便易用的加密解密API。開發者可以根據實際需要,選擇合適的加密算法和API,來保證信息的安全性。