java如何实现sha

SHA 加密实现方法
在 Java 中实现 SHA(Secure Hash Algorithm)加密可以通过 MessageDigest 类完成。以下是几种常见的 SHA 算法实现方式:

SHA-1 加密
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class SHA1Example {
public static String sha1(String input) throws NoSuchAlgorithmException {
MessageDigest md = MessageDigest.getInstance("SHA-1");
byte[] digest = md.digest(input.getBytes());
StringBuilder hexString = new StringBuilder();
for (byte b : digest) {
hexString.append(String.format("%02x", b));
}
return hexString.toString();
}
}
SHA-256 加密
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class SHA256Example {
public static String sha256(String input) throws NoSuchAlgorithmException {
MessageDigest md = MessageDigest.getInstance("SHA-256");
byte[] digest = md.digest(input.getBytes());
StringBuilder hexString = new StringBuilder();
for (byte b : digest) {
hexString.append(String.format("%02x", b));
}
return hexString.toString();
}
}
SHA-512 加密
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class SHA512Example {
public static String sha512(String input) throws NoSuchAlgorithmException {
MessageDigest md = MessageDigest.getInstance("SHA-512");
byte[] digest = md.digest(input.getBytes());
StringBuilder hexString = new StringBuilder();
for (byte b : digest) {
hexString.append(String.format("%02x", b));
}
return hexString.toString();
}
}
使用注意事项
确保处理可能的异常情况,如 NoSuchAlgorithmException。所有 SHA 算法实现方式类似,只需更改 MessageDigest.getInstance() 中的算法名称即可。
对于更安全的应用场景,建议使用 SHA-256 或 SHA-512,因为 SHA-1 已被证明存在安全性漏洞。






