SUN 提供的消息摘要算法
接收任意大小的数据,并输出固定长度的哈希值
1. MD2,MD5,SHA-1,SHA-256,SHA-384,SHA-512
MD5: 128 个比特位
SHA: 160,256,384,512个比特位
2. package: java.security.MessageDigest
3. Example
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import org.apache.commons.codec.binary.Hex;
public class test {
/**
* @param args
* @throws NoSuchAlgorithmException
*/
public static void main(String[] args) throws NoSuchAlgorithmException {
MessageDigest md;
md = MessageDigest.getInstance("SHA-1");
/* MD2
* MD5
* SHA1 OR SHA-1
* SHA-256
* SHA-384
* SHA-512
*/
String str="ni hao";
//md.update(str.getBytes());
//byte[] byteDigest = md.digest();
byte[] byteDigest = md.digest(str.getBytes());
Hex hex=new Hex();
byte[] hexStr=hex.encode(byteDigest);
System.out.println(new String(hexStr));
}
}
分享到:
相关推荐
开发者可以通过这个方法传入"MD5"或"SHA-1"(支持SHA系列算法)来获得相应算法的实例,并调用digest()方法来获取数据摘要。 MD5是一种广泛使用的单向加密算法,它可以生成一个128位(16字节)的哈希值(通常表示为...
MD5 产生128位(16字节)的哈希值,同样作为一种常用的消息摘要算法,在过去的应用非常广泛。但由于存在碰撞攻击的风险,现在推荐使用更安全的 SHA-256 或者 SHA-3。 #### 四、非对称加密 非对称加密算法使用一对...
MD5 Check可能是一个独立的程序,用户可以输入文件路径,该程序会计算文件的MD5值并显示出来,以便与官方提供的MD5值进行比对。用户通常会在下载大型软件或重要文件后使用这类工具,以确保下载的文件与原始文件一致...
SHA1和MD5是两种广泛使用的消息摘要算法。SHA1产生的是20字节的二进制数组,而MD5则生成16字节的哈希值。这两个算法具有两大特性:一是不同数据几乎不可能生成相同的摘要,二是从摘要反推原数据极为困难。这使得消息...
MD5(Message-Digest Algorithm 5)是一种广泛使用的散列算法,用于生成一个固定长度(通常是128位)的散列值或消息摘要。MD5的主要用途是为数据完整性提供保护,它能够将任意长度的消息压缩成一个较短的、固定长度...
##### 2.2 消息摘要MD5和SHA的使用 Java提供了`java.security.MessageDigest`类来支持消息摘要的计算。下面是一些关键步骤: 1. 创建一个`MessageDigest`实例,指定使用哪种摘要算法(例如SHA-1或MD5)。 2. 使用`...
消息摘要的实现,如MD5和SHA,通过`java.security.MessageDigest`类轻松完成,不仅支持多种摘要算法,还提供了丰富的API来处理摘要的生成和验证,为Java开发者提供了强大的安全工具箱。 综上所述,Java算法集锦不仅...
根据提供的文件信息,本文将详细解析Java中的加密与解密算法,特别关注Blowfish算法的实现,并简要介绍消息摘要算法(如MD5)的基本用法。 ### 1. Java中的加密解密基础 在Java中,进行数据加密与解密主要依赖于...
常见的消息摘要算法包括SHA1和MD5。 **特点:** - **输入长度可变,输出长度固定**。 - **不同输入几乎不可能产生相同输出**。 - **从摘要很难还原出原始数据**。 - **计算速度快**。 **代表算法:** - **SHA1 ...
与MD5类似,SHA算法也能将任意长度的数据转换成固定长度的哈希值,但相较于MD5更加安全。 **2. 工作原理** SHA算法通过更复杂的数学运算来生成哈希值,其结果通常比MD5更长。这使得SHA算法对于抵抗碰撞攻击的能力...
3. **哈希函数**:如MD5和SHA-1/2,将任意长度的消息转化为固定长度的摘要,常用于验证数据完整性,但不适用于加密。 在跨平台的场景中,开发者需要确保选择的加密算法在所有目标平台上都有可用的实现,并且行为...
3. **异常处理**:虽然代码中抛出了异常,但在生产环境中,应捕获这些异常并提供更友好的错误消息,避免直接暴露技术细节给用户。 4. **依赖问题**:`sun.misc.BASE64Encoder`在Java 9及更高版本中已被弃用,建议...
MD5是一种广泛使用的密码散列函数,它能够接收任意长度的信息作为输入,并产生一个固定长度(通常为128位)的哈希值,也称为摘要或消息摘要。这种算法的主要用途是数据完整性的检查,以及在存储密码时进行加密处理,...
目前,Java开发工具包(JDK)1.5及以上版本对MD4、MD5、SHA-1等算法提供了支持。通过`java.security.MessageDigest`类,开发者可以轻松地实现消息摘要功能。 ##### 2.2 国内加密技术现状 对于中国而言,虽然可以从...
Java MD5(Message-Digest Algorithm 5)是一种广泛使用的...在实际编程中,理解这些概念并熟练运用MD5可以帮助你完成数据校验、日志记录等任务,但要记住,对于安全性敏感的应用,应当选择更安全的哈希算法如SHA-256。
### MD5加密算法详解 #### 一、简介 MD5(Message-Digest Algorithm 5)是一种广泛使用的散列函数,可以将任意长度的数据转换为一个固定长度(通常是128位)的十六进制字符串。这种转换过程是不可逆的,也就是说...
例如,`MessageDigest`类用于MD5和SHA哈希计算,`Base64`类(Java 8及以上版本)或`sun.misc.BASE64Encoder`(旧版本)处理BASE64编码,而`javax.crypto`包提供了DES加密的实现,如`Cipher`类和`SecretKeySpec`类。...