Java中实现加密解密的函数列表
Java中实现加密解密的函数列表包含了许多常用的加密解密算法。以下是一些常用的加密解密函数列表:
1. 对称加密算法:AES、DES、3DES
2. 非对称加密算法:RSA、DSA、ECDSA、ECDH
3. 哈希函数:MD5、SHA-1、SHA-256
4. 消息认证码:HMAC-SHA1、HMAC-SHA256
5. 对称加密算法:
AES加密解密:
1) SecretKeySpec secretKeySpec = new SecretKeySpec(key, "AES");
2) Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
3) cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec, ivspec);
4) byte[] encrypted = cipher.doFinal(plaintext);
5) cipher.init(Cipher.DECRYPT_MODE, secretKeySpec, ivspec);
6) byte[] decrypted = cipher.doFinal(encrypted);
DES加密解密:
1) SecretKey key = KeyGenerator.getInstance("DES").generateKey();
2) Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");
3) cipher.init(Cipher.ENCRYPT_MODE, key);
4) byte[] encrypted = cipher.doFinal(plaintext);
5) cipher.init(Cipher.DECRYPT_MODE, key);
6) byte[] decrypted = cipher.doFinal(encrypted);
3DES加密解密:
1) SecretKey key = KeyGenerator.getInstance("DESede").generateKey();
2) Cipher cipher = Cipher.getInstance("DESede/ECB/PKCS5Padding");
3) cipher.init(Cipher.ENCRYPT_MODE, key);
4) byte[] encrypted = cipher.doFinal(plaintext);
5) cipher.init(Cipher.DECRYPT_MODE, key);
6) byte[] decrypted = cipher.doFinal(encrypted);
6. 非对称加密算法:
RSA加密解密:
1) KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
2) keyPairGenerator.initialize(2048);
3) KeyPair keyPair = keyPairGenerator.generateKeyPair();
4) PublicKey publicKey = keyPair.getPublic();
5) PrivateKey privateKey = keyPair.getPrivate();
6) Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");
7) cipher.init(Cipher.ENCRYPT_MODE, publicKey);
8) byte[] encrypted = cipher.doFinal(plaintext);
9) cipher.init(Cipher.DECRYPT_MODE, privateKey);
10) byte[] decrypted = cipher.doFinal(encrypted);
DSA签名验签:
1) KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("DSA");
2) keyPairGenerator.initialize(1024);
3) KeyPair keyPair = keyPairGenerator.generateKeyPair();
4) PublicKey publicKey = keyPair.getPublic();
5) PrivateKey privateKey = keyPair.getPrivate();
6) Signature signature = Signature.getInstance("DSA");
7) signature.initSign(privateKey);
8) signature.update(data);
9) byte[] sign = signature.sign();
10) signature.initVerify(publicKey);
11) signature.update(data);
12) boolean verify = signature.verify(sign);
ECDSA签名验签:
1) KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("EC");
2) ECNamedCurveParameterSpec parameterSpec = ECNamedCurveTable.getParameterSpec("prime256v1");
3) keyPairGenerator.initialize(parameterSpec);
4) KeyPair keyPair = keyPairGenerator.generateKeyPair();
5) PublicKey publicKey = keyPair.getPublic();
6) PrivateKey privateKey = keyPair.getPrivate();
7) Signature signature = Signature.getInstance("SHA256withECDSA");
8) signature.initSign(privateKey);
9) signature.update(data);
10) byte[] sign = signature.sign();
11) signature.initVerify(publicKey);
12) signature.update(data);
13) boolean verify = signature.verify(sign);
ECDH密钥交换:
1) KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("EC");
2) ECNamedCurveParameterSpec parameterSpec = ECNamedCurveTable.getParameterSpec("prime256v1");
3) keyPairGenerator.initialize(parameterSpec);
4) KeyPair keyPair1 = keyPairGenerator.generateKeyPair();
5) KeyPair keyPair2 = keyPairGenerator.generateKeyPair();
6) PublicKey publicKey1 = keyPair1.getPublic();
7) PrivateKey privateKey1 = keyPair1.getPrivate();
8) PublicKey publicKey2 = keyPair2.getPublic();
9) PrivateKey privateKey2 = keyPair2.getPrivate();
10) KeyAgreement keyAgreement1 = KeyAgreement.getInstance("ECDH");
11) keyAgreement1.init(privateKey1);
12) keyAgreement1.doPhase(publicKey2, true);
13) SecretKey secretKey1 = keyAgreement1.generateSecret("AES");
14) KeyAgreement keyAgreement2 = KeyAgreement.getInstance("ECDH");
15) keyAgreement2.init(privateKey2);
16) keyAgreement2.doPhase(publicKey1, true);
17) SecretKey secretKey2 = keyAgreement2.generateSecret("AES");
7. 哈希函数:
MD5:
1) MessageDigest messageDigest = MessageDigest.getInstance("MD5");
2) byte[] hash = messageDigest.digest(data);
SHA-1:
1) MessageDigest messageDigest = MessageDigest.getInstance("SHA-1");
2) byte[] hash = messageDigest.digest(data);
SHA-256:
1) MessageDigest messageDigest = MessageDigest.getInstance("SHA-256");
2) byte[] hash = messageDigest.digest(data);
8. 消息认证码:
HMAC-SHA1:
1) SecretKey secretKey = new SecretKeySpec(key, "HmacSHA1");
2) Mac mac = Mac.getInstance("HmacSHA1");
3) mac.init(secretKey);
4) byte[] hmac = mac.doFinal(data);
HMAC-SHA256:
1) SecretKey secretKey = new SecretKeySpec(key, "HmacSHA256");
2) Mac mac = Mac.getInstance("HmacSHA256");
3) mac.init(secretKey);
4) byte[] hmac = mac.doFinal(data);
总结:
Java中有许多的加密解密算法,使用这些算法可以保护数据的安全性。以上就是Java中实现加密解密的函数列表,可以根据需要选择合适的函数进行加密解密操作。
