2025年Java中字符串如何进行加密和解密

Java中字符串如何进行加密和解密在 Java 中 字符串是一种常见的数据类型 我们经常需要对其进行加密和解密 这篇文章将会介绍在 Java 中字符串如何进行加密和解密 一 加密算法 Java 中字符串如何进行加密和解密 在 Java 中 常用的加密算法有 MD5 SHA1 和 AES 等 下面对这些加密算法进行简单介绍 MD5 MD5 是一种常见的加密算法

大家好,我是讯享网,很高兴认识大家。

在Java中,字符串是一种常见的数据类型,我们经常需要对其进行加密和解密。这篇文章将会介绍在Java中字符串如何进行加密和解密。

一、加密算法

Java中字符串如何进行加密和解密

在Java中,常用的加密算法有MD5、SHA1和AES等。下面对这些加密算法进行简单介绍。

  1. MD5

MD5是一种常见的加密算法,它可以将任意长度的字符串加密成一个固定长度(128位)的字符串。Java中提供了java.security.MessageDigest类来实现MD5加密算法。

生成MD5加密后的字符串的代码如下:

import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class MD5Util { 
    // 生成MD5加密后的字符串 public static String getMD5(String str) throws NoSuchAlgorithmException { 
    MessageDigest md = MessageDigest.getInstance(\MD5\ md.update(str.getBytes()); byte[] b = md.digest(); StringBuilder sb = new StringBuilder(); for (int i = 0; i < b.length; i++) { 
    int val = ((int) b[i]) & 0xff; if (val < 16) { 
    sb.append(\0\ } sb.append(Integer.toHexString(val)); } return sb.toString(); } } 

讯享网
  1. SHA1

SHA1也是一种常见的加密算法,它可以将任意长度的字符串加密成一个固定长度(160位)的字符串。Java中提供了java.security.MessageDigest类来实现SHA1加密算法。

生成SHA1加密后的字符串的代码如下:

讯享网import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class SHA1Util { 
    // 生成SHA1加密后的字符串 public static String getSHA1(String str) throws NoSuchAlgorithmException { 
    MessageDigest md = MessageDigest.getInstance(\SHA1\ md.update(str.getBytes()); byte[] b = md.digest(); StringBuilder sb = new StringBuilder(); for (int i = 0; i < b.length; i++) { 
    int val = ((int) b[i]) & 0xff; if (val < 16) { 
    sb.append(\0\ } sb.append(Integer.toHexString(val)); } return sb.toString(); } } 
  1. AES

AES是一种高级加密标准,它可以将任意长度的字符串加密成一个固定长度(128位、192位或256位)的字符串。Java中提供了javax.crypto.Cipher类来实现AES加密算法。


讯享网

生成AES加密后的字符串的代码如下:

 import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypto.SecretKey; import javax.crypto.spec.SecretKeySpec; public class AESUtil { 
    // 生成AES加密后的字符串 public static String getAES(String str, String key) throws Exception { 
    // 生成密钥 KeyGenerator kgen = KeyGenerator.getInstance(\AES\ kgen.init(128); SecretKey secretKey = kgen.generateKey(); byte[] enCodeFormat = secretKey.getEncoded(); SecretKeySpec keySpec = new SecretKeySpec(enCodeFormat, \AES\ // 初始化加密器 Cipher cipher = Cipher.getInstance(\AES\ cipher.init(Cipher.ENCRYPT_MODE, keySpec); // 加密 byte[] byteContent = str.getBytes(\utf-8\ byte[] result = cipher.doFinal(byteContent); return new String(result, \utf-8\ } } 

二、解密算法

解密算法是将加密后的字符串还原成原始字符串的算法。在Java中,常用的解密算法有MD5、SHA1和AES等。

  1. MD5

由于MD5算法是不可逆的,所以在Java中不提供MD5的解密算法。

  1. SHA1

由于SHA1算法是不可逆的,所以在Java中不提供SHA1的解密算法。

  1. AES

AES算法可以使用相同的密钥将加密后的字符串解密成原始字符串。Java中提供了javax.crypto.Cipher类来实现AES解密算法。

生成AES解密后的字符串的代码如下:

讯享网 import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypto.SecretKey; import javax.crypto.spec.SecretKeySpec; public class AESUtil { 
    // 生成AES解密后的字符串 public static String getAES(String str, String key) throws Exception { 
    // 生成密钥 KeyGenerator kgen = KeyGenerator.getInstance(\AES\ kgen.init(128); SecretKey secretKey = kgen.generateKey(); byte[] enCodeFormat = secretKey.getEncoded(); SecretKeySpec keySpec = new SecretKeySpec(enCodeFormat, \AES\ // 初始化解密器 Cipher cipher = Cipher.getInstance(\AES\ cipher.init(Cipher.DECRYPT_MODE, keySpec); // 解密 byte[] byteContent = str.getBytes(\utf-8\ byte[] result = cipher.doFinal(byteContent); return new String(result, \utf-8\ } } 

三、总结

本文介绍了在Java中字符串如何进行加密和解密。通过对MD5、SHA1和AES加密算法的介绍,我们可以了解到在Java中如何实现这些算法。

小讯
上一篇 2025-01-24 18:57
下一篇 2025-01-09 19:09

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/46112.html