信息安全概论实验md5 sha1 散列函数程序开发使用java代码
时间: 2024-11-27 19:21:16 浏览: 12
在信息安全概论的实验中,MD5 (Message-Digest Algorithm 5) 和 SHA-1 (Secure Hash Algorithm 1) 是常见的散列函数,用于数据完整性验证、密码存储等场景。它们将任意长度的消息转化为固定长度的摘要(通常128位和160位),特点是单向不可逆。
以下是使用Java语言开发一个简单的MD5和SHA-1散列函数的示例:
```java
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class HashFunctionExample {
public static String hash(String input, String algorithm) {
try {
MessageDigest md = MessageDigest.getInstance(algorithm);
byte[] hashBytes = md.digest(input.getBytes("UTF-8"));
return toHex(hashBytes);
} catch (NoSuchAlgorithmException e) {
throw new RuntimeException("Unsupported hashing algorithm", e);
}
}
private static String toHex(byte[] bytes) {
StringBuilder sb = new StringBuilder();
for (byte b : bytes) {
sb.append(String.format("%02x", b & 0xff));
}
return sb.toString();
}
// 示例用法
public static void main(String[] args) {
String message = "Hello, World!";
System.out.println("MD5: " + hash(message, "MD5"));
System.out.println("SHA-1: " + hash(message, "SHA-1"));
}
}
```
在这个例子中,`hash`方法接受输入字符串和算法名称,然后利用`MessageDigest`类对输入进行哈希计算。`toHex`方法是将字节数组转换为十六进制字符串便于展示。
阅读全文