java 加密后 密文固定长度的算法
时间: 2023-08-15 19:03:21 浏览: 383
java实现的加密算法
Java中提供了一些加密算法,如AES、DES、RSA等,但它们加密后的密文长度是可变的。如果需要密文长度固定的加密算法,可以使用哈希算法,如SHA-256、SHA-512、MD5等。这些算法的输出消息摘要的长度是固定的,如SHA-256的输出长度为256位,SHA-512的输出长度为512位,MD5的输出长度为128位。可以通过调用Java自带的MessageDigest类来实现这些哈希算法。例如,使用SHA-256算法对字符串进行加密,可以使用如下代码:
```java
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.nio.charset.StandardCharsets;
public class SHA256Example {
public static void main(String[] args) throws NoSuchAlgorithmException {
String input = "Hello World";
MessageDigest digest = MessageDigest.getInstance("SHA-256");
byte[] hash = digest.digest(input.getBytes(StandardCharsets.UTF_8));
String hex = bytesToHex(hash);
System.out.println(hex);
}
private static final char[] HEX_ARRAY = "0123456789ABCDEF".toCharArray();
public static String bytesToHex(byte[] bytes) {
char[] hexChars = new char[bytes.length * 2];
for (int i = 0; i < bytes.length; i++) {
int v = bytes[i] & 0xFF;
hexChars[i * 2] = HEX_ARRAY[v >>> 4];
hexChars[i * 2 + 1] = HEX_ARRAY[v & 0x0F];
}
return new String(hexChars);
}
}
```
这段代码将字符串"Hello World"使用SHA-256算法加密,并输出加密后的256位哈希值,即固定长度的密文。
阅读全文