- 浏览: 1008047 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (394)
- OSGI (14)
- 多线程 (10)
- 数据库 (30)
- J2ME (1)
- JAVA基础知识 (46)
- 引用包 (1)
- 设计模式 (7)
- 工作流 (2)
- Ubuntu (7)
- 搜索引擎 (6)
- QT (2)
- Ubuntu下编程 (1)
- 小程序 (2)
- UML (1)
- Servlet (10)
- spring (16)
- IM (12)
- 文档视频转为flash格式在线播放 (19)
- Maven (8)
- 远程调用 (2)
- PHPRPC (1)
- EXTJS学习 (2)
- Hibernate (16)
- 技术文章 (38)
- flex (5)
- 海量数据处理 (5)
- FTP (8)
- JS (10)
- Struts (1)
- hibernate search (13)
- JQuery (2)
- EMail (3)
- 算法 (4)
- SVN (7)
- JFreeChart (4)
- 面试 (4)
- 正规表达式 (2)
- 数据库性能优化 (10)
- JVM (6)
- Http Session Cookie (7)
- 网络 (12)
- Hadoop (2)
- 性能 (1)
最新评论
-
hy1235366:
能够随便也发一下,你退火算法程序使用的DistanceMatr ...
模拟退火算法总结(含例子)(转) -
梅强强:
感谢分享。。帮大忙了
swftools转换文件时线程堵塞问题的解决方法 -
wenlongsust:
openoffice和文件不在同一个服务器上,用过吗?
[JODConverter]word转pdf心得分享(转) -
2047699523:
如何在java Web项目中开发WebService接口htt ...
利用Java编写简单的WebService实例 -
abingpow:
唉,看起来好像很详细很不错的样子,可惜不是篇面向初学者的文章, ...
Spring与OSGi的整合(二)(转)
MessageDigest 类为应用程序提供信息摘要算法的功能,如 MD5 或 SHA 算法。信息摘要是安全的单向哈希函数,它接收任意大小的数据,并输出固定长度的哈希值。
MessageDigest 对象开始被初始化。该对象通过使用 update()方法处理数据。任何时候都可以调用 reset()方法重置摘要。一旦所有需要更新的数据都已经被更新了,应该调用digest() 方法之一完成哈希计算。
对于给定数量的更新数据,digest 方法只能被调用一次。在调用 digest 之后,MessageDigest 对象被重新设置成其初始状态。
1、public static MessageDigest getInstance(String algorithm)
throws NoSuchAlgorithmException 返回实现指定摘要算法的 MessageDigest 对象。 algorithm - 所请求算法的名称2、public static MessageDigest getInstance(String algorithm,
String provider)
throws NoSuchAlgorithmException,
NoSuchProviderException 返回实现指定摘要算法的 MessageDigest 对象。 algorithm - 所请求算法的名称 provider - 提供者的名称。3、public void update(byte[] input) 使用指定的 byte 数组更新摘要。 4、public byte[] digest() 通过执行诸如填充之类的最终操作完成哈希计算。在调用此方法之后,摘要被重置。5、public static boolean isEqual(byte[] digesta,
byte[] digestb)
比较两个摘要的相等性。做简单的字节比较。 注意:Provider可以通过 java.security.Security.getProviders()
方法获取已注册提供者列表。比较常用的有“SUN”SUN提供的常用的算法名称有:MD2 MD5 SHA-1 SHA-256 SHA-384 SHA-512 Code举例:
import java.security.*; public class myDigest { public static void main(String[] args) { myDigest my=new myDigest(); my.testDigest(); } public void testDigest() { try { String myinfo="我的测试信息"; //java.security.MessageDigest alg=java.security.MessageDigest.getInstance("MD5"); java.security.MessageDigest alga=java.security.MessageDigest.getInstance("SHA-1"); alga.update(myinfo.getBytes()); byte[] digesta=alga.digest(); System.out.println("本信息摘要是:"+byte2hex(digesta)); //通过某中方式传给其他人你的信息(myinfo)和摘要(digesta) 对方可以判断是否更改或传输正常 java.security.MessageDigest algb=java.security.MessageDigest.getInstance("SHA-1"); algb.update(myinfo.getBytes()); if (algb.isEqual(digesta,algb.digest())) { System.out.println("信息检查正常"); } else { System.out.println("摘要不相同"); } } catch (java.security.NoSuchAlgorithmException ex) { System.out.println("非法摘要算法"); } } public String byte2hex(byte[] b) //二行制转字符串 { String hs=""; String stmp=""; for (int n=0;n<b.length;n++) { stmp=(java.lang.Integer.toHexString(b[n] & 0XFF)); if (stmp.length()==1) hs=hs+"0"+stmp; else hs=hs+stmp; if (n<b.length-1) hs=hs+":"; } return hs.toUpperCase(); } }
其实就是将信息加密,然后传输后,再进行检验是否是原来的信息,看会不会有人改了。
发表评论
-
Java线程(二):线程同步synchronized和volatile(转)
2014-03-17 00:09 914转载自:http://blog.csdn.net/ghsau ... -
浅谈Java多线程的同步问题(l转)
2014-03-17 00:07 955非常好的使用线程同步的文章 转载自http://www.c ... -
JVM的垃圾回收机制详解和调优(转)
2013-06-20 10:31 7401.JVM的gc概述 gc即垃圾 ... -
深入探讨 Java 类加载器(转)
2013-06-20 10:17 898转载自:http://www.ibm.com/develop ... -
java反射详解(推荐转)
2013-05-15 10:42 903载自:http://www.cnblogs.com/roll ... -
java静态方法、非静态代码块{}、静态代码块static{}(转)
2012-07-13 14:33 1511转自:http://www.cn-java.com/www1/ ... -
error 与 Exception区别(转)
2012-07-13 14:31 1100Error类和Exception类都继承自Throwab ... -
java面试题有哪些常见的(转)
2012-07-13 14:30 1219第一,谈谈final, finally, finaliz ... -
java Math.round()(转)
2012-07-11 14:17 1210public class MathTest { ... -
Java异常的分类(转)
2012-07-11 08:57 1067转载自:http://blog.csdn.net/ilibab ... -
java 内联函数(转)
2012-06-28 23:40 1850以前用过C++,知道它 ... -
堆栈,堆栈,堆和栈的区别(转)
2011-05-08 00:36 1209不防看看这篇文章:http://www.cppblog.com ... -
第二十章 指针 二 为指针分配和释放空间(转)
2011-05-08 00:10 1517载自<白话c++>:http://17de.com ... -
数据结构中各种时间复杂度(转)
2011-05-06 09:58 2812(1)冒泡排序 冒泡排序就是把小的元素往 ... -
C#之int挑战Java之Integer(转)
2011-04-28 14:24 1361可能有些图会看不到,可以到转载处去阅读:http://kb.c ... -
Java: 堆 & 栈(转)
2011-04-28 14:16 1420栈是运行时的单位,而堆是存储的单位。栈解决程序的运行问题,即程 ... -
native2ascii 使用方法 及 Java字符编码(转)
2011-04-18 01:17 2754在做Java开发的时候,常 ... -
Unicode,ISO-8859,GBK,UTF-8编码及相互转换(java)(转)
2011-04-18 01:15 69101、函数介绍在Java中,字符串用统一的Unicode编码 ... -
GBK与UTF-8 转换乱码详解(转)
2011-04-18 01:07 3508getBytes 的功能是将字符转换成字节数组, gbk. ... -
Java TreeMap的简单实现(转)
2011-04-18 00:29 1119TreeMap的实现与二叉搜索树显示,其对应的节点格式为 E ...
相关推荐
Java 提供了 `MessageDigest` 类来实现加密哈希函数的功能,本文将详细介绍 `MessageDigest` 的工作原理及其使用方法,并通过一个使用 SHA-256 算法计算哈希值的例子来加深理解。 #### 二、Java MessageDigest 概述...
总之,`MessageDigest.getInstance`方法是Java安全编程中不可或缺的一部分,它提供了计算散列值的功能,从而在各种场景下保护数据的安全性和完整性。理解并正确使用这个方法对于开发安全的应用至关重要。
1. 获取MessageDigest对象:使用getInstance方法获取MessageDigest对象,例如获取MD5算法的对象为MessageDigest.getInstance("md5")。 2. 执行加密操作:使用digest方法对数据进行加密,例如对字符串"123123"进行MD...
总的来说,`MessageDigestTest`是一个用于验证和演示`MessageDigest`类功能的示例程序,它涵盖了消息摘要的基本用法,包括选择哈希算法、处理数据和显示结果。这个测试对于理解和使用Java中的加密技术是非常有价值的...
上述代码首先创建了一个`MessageDigest`实例,然后使用`update`方法处理数据,最后调用`digest`方法计算MD5摘要。计算出的摘要是一组字节,通常会将其转换为16进制字符串以便于人类阅读。 MD5的主要用途是数据完整...
Java加密技术主要关注的是数据的安全性和隐私保护,其中`java.security`包中的`MessageDigest`类是用于实现消息摘要功能的关键。消息摘要是一种单向函数,它将任意长度的输入(也称为预映射或消息)转换为固定长度的...
ava.security.MessageDigest...MessageDigest 对象通过使用 update 方法处理数据。任何时候都可以调用 reset 方法重置摘要。一旦所有需要更新的数据都已经被更新了,应该调用 digest 方法之一完成哈希计算并返回结果。
* 功能:对一个字符串进行md5加密 */ public class EncryptUtil { /** * 对字符串加密的方法 * @param str * @return */ public static String toMessageDigest(String str) { try { MessageDigest...
1. **MD5加密jar包**:这些预编译的库可能包含了实现MD5加密功能的Java类和方法,比如`java.security.MessageDigest`类的使用,它可以用来创建MD5实例并进行哈希运算。使用这些jar包,开发者可以直接调用API进行MD5...
使用这个库可以方便地在Java程序中集成MD5功能,而无需手动编写复杂的哈希计算代码。通常,这个库会包含`java.security.MessageDigest`类的封装,该类是Java标准库中用于各种消息摘要算法的接口,包括MD5。 使用MD5...
例如,可以使用`org.bouncycastle.jce.provider.BouncyCastleProvider`作为安全提供者,并通过`MessageDigest.getInstance()`方法获取SHA-3的实例,然后将数据传递给`digest()`或`update()`方法。 以下是一个简单的...
- **初始化MessageDigest对象**:通过调用`MessageDigest.getInstance("MD5")`方法获取一个MD5算法的MessageDigest对象。 - **更新摘要**:通过调用`digest.update(data.getBytes())`方法,将原始数据转换为字节数组...
- 使用`getInstance()`方法获取MD5实例:`MessageDigest md = MessageDigest.getInstance("MD5");` - `update()`方法用于向哈希计算添加数据,可以多次调用处理大量数据:`md.update(input.getBytes());` - `...
1. **导入必要的库**:首先,你需要导入`java.security.MessageDigest`和`java.math.BigInteger`库,以便使用MD5功能和处理大整数。 ```java import java.security.MessageDigest; import java.math.BigInteger; ...
### Java中的MD5算法 #### 一、简介 在计算机科学领域中,MD5(Message-Digest Algorithm 5)是一种广泛使用的散列函数,...通过上述内容的学习,可以帮助开发者更好地掌握MD5算法在Java中的使用方法及其背后的原理。
1. **创建MessageDigest实例**:首先需要通过`MessageDigest.getInstance("MD5")`方法创建一个`MessageDigest`对象,指定使用MD5算法。 2. **计算摘要**:然后通过调用`digest()`方法计算输入字符串的摘要。在计算...
2. **更新数据**:使用`MessageDigest.update(byte[], int, int)`方法向MessageDigest对象添加数据,该方法接受一个字节数组以及起始位置和长度作为参数。 3. **生成哈希值**:调用`MessageDigest.digest()`方法计算...
这个“获取哈希及获取哈希算法标识demo-java”项目就是针对这一主题的实例代码,帮助开发者理解和使用Java中的哈希计算功能。 标题“获取哈希及获取哈希算法标识demo-java”表明这个示例主要涉及两个关键知识点:一...
在计算文件的 MD5 值时,需要使用 MessageDigest 类的 getInstance 静态方法来获取 MessageDigest 对象,并将参数设置为 "MD5"。然后,使用 FileInputStream 读取文件的内容,并将其传递给 MessageDigest 对象的 ...
本文将详细介绍如何使用Java的安全包`java.security`中的`MessageDigest`类来实现数据加密,主要关注MD5算法的应用。 #### 二、`MessageDigest`类介绍 `MessageDigest`类位于`java.security`包中,它提供了一种...