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

java 對稱加密和非對稱加密

李中冰1年前7瀏覽0評論

Java中的加密技術主要可以分為兩種,即對稱加密和非對稱加密。

對稱加密是指加密和解密都使用同一把密鑰的加密方式。在Java中,常用的對稱加密算法有DES、AES、RC4等。

public static byte[] desEncrypt(byte[] data, String key) throws Exception {
DESKeySpec dks = new DESKeySpec(key.getBytes());
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
SecretKey secretKey = keyFactory.generateSecret(dks);
Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE,secretKey);
return cipher.doFinal(data);
}

以上代碼為使用DES算法進行對稱加密的Java示例。其中,密鑰為傳入的字符串的字節數組,采用ECB模式,并對加密結果進行填充。

而非對稱加密則是指加密和解密使用不同的密鑰的加密方式。其中,公鑰用于加密,而私鑰用于解密。在Java中,常用的非對稱加密算法有RSA、DSA等。

public static byte[] rsaEncrypt(byte[] data, PublicKey publicKey) throws Exception {
Cipher cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.ENCRYPT_MODE, publicKey);
return cipher.doFinal(data);
}

以上代碼為使用RSA算法進行非對稱加密的Java示例。其中,傳入的公鑰用于加密,采用默認填充方式。

需要注意的是,在使用非對稱加密時,由于密鑰較長,加密效率較低,因此常用于加密小數據量的信息,而對于大數據量的信息,則應采用對稱加密方式。