JAVA加密技术-----MD5 与SHA 加密
关于JAVA的加密技术有很多很多,这里只介绍加密技术的两种 MD5与 SHA。
MD5与SHA是单向加密算法,也就是说加密后不能解密.
MD5 ---信息摘要算法,广泛用于加密与解密技术,常用于文件校验,经过MD5后都能生成唯一的MD5值,比如现在的ISO校验.
SHA ---安全散列算法,数字签名等密码学应用中重要的工具,被广泛的应用于电子商务等信息安全领域。虽然,SHA与MD5通过碰撞法都被破解了,但SHA任然是公认的安全加密算法,较之MD5更为安全.
下面我们通过代码来看下,如何实现MD5与SHA的加密.
package com.suning.security; import java.security.MessageDigest;
import sun.misc.BASE64Encoder; public class DigestPwd { /**
* @param args
*/
/**
* MD5加密
* @param args
*/
public String getMD5(String pwd) throws Exception{
//返回实现指定摘要算法的 MessageDigest 对象。
MessageDigest md5=MessageDigest.getInstance("MD5");
//使用指定的 byte 数组更新摘要。
md5.update(pwd.getBytes("UTF-8"));
//开始进行加密
byte[] digesta=md5.digest();
//通过我们不使用上述的md5加密。通常将md5产生的字节数组交给base64再加密一把,得到相应的字符串
BASE64Encoder base64=new BASE64Encoder();
String bs= base64.encode(digesta);
return bs;
} /**
* SHA加密
* @param args
* @throws Exception
*/
public String getSHA(String pwd) throws Exception{
MessageDigest sha=MessageDigest.getInstance("SHA");
sha.update(pwd.getBytes("UTF-8"));
byte[] digesta=sha.digest();
BASE64Encoder base64=new BASE64Encoder();
String bs= base64.encode(digesta);
return bs;
} public static void main(String[] args) throws Exception {
DigestPwd dp=new DigestPwd();
System.out.println("MD5加密后的结果: "+dp.getMD5("123456"));
System.out.println("SHA加密后的结果 :"+dp.getSHA("123456")); }
}
JAVA加密技术-----MD5 与SHA 加密的更多相关文章
- Java的单向加密算法MD5和SHA——加密和解密
出自:http://www.cnblogs.com/onetwo/p/3875551.html 1.JDK中MD5和SHA加密的主要类 在JDK6.0中,与MD5与SHA密切相关的几个类的类图如下: ...
- Java加密技术(一)——加密介绍
from://http://blog.csdn.net/janronehoo/article/details/7590772 如基本的单向加密算法: BASE64 严格地说,属于编码格式,而非加密算法 ...
- MD5和SHA加密实现
@Test public void TestMD5AndSHA() throws NoSuchAlgorithmException { String MD5=Md5("123456" ...
- MD5和sha1加密算法--散列加密技术 MD5:128bit的大整数
在很多电子商务和社区应用中,我们都要存放很多的客户的资料,其中包括了很多的隐私信息和客户不愿被别人看到的信息,当然好有客户执行各种操作的密码,此时就需要对客户的信息进行加密再存储,目前有两种比较好的加 ...
- 常见三种加密(MD5、非对称加密,对称加密)
转载. https://blog.csdn.net/SSY_1992/article/details/79094556 任何应用的开发中安全都是重中之重,在信息交互异常活跃的现在,信息加密技术显得尤为 ...
- md5加密,md5加盐加密和解密
package com.java.test; import java.security.MessageDigest; import java.security.SecureRandom; import ...
- shiro密码的比对,密码的MD5加密,MD5盐值加密,多个Relme
有具体问题的可以参考之前的关于shiro的博文,关于shiro的博文均是一次工程的内容 密码的比对 通过AuthenticatingRealm的CredentialsMatcher方法 密码的加密 ...
- MD5、sha加密
MD5: 不可逆,一般用于密码的加密存储,数字签名,文件完整性验证 MD5码具有高度离散性,不可预测 MD5长度为128位,重复率几乎为0 易受密码分析的攻击 Sha: 对于长度小于2^64位的消息, ...
- DES,AeS加解密,MD5,SHA加密
1.DES一共就有4个参数参与运作:明文.密文.密钥.向量.其中这4者的关系可以理解为: 密文=明文+密钥+向量: 明文=密文-密钥-向量: 为什么要向量这个参数呢?因为如果有一篇文章,有几个词重复, ...
随机推荐
- ORACLE数据库学习之体系结构
Oracle体系结构 ORACLE数据库体系结构决定了oracle如何使用网络.磁盘和内存.包括实例(instance),文件(file)和进程(process不包括后台进程)三部分. 实例:每 ...
- SQL Server SA 最佳实践(也许不仅仅是翻译)
老实说,本文主要部分是翻译的,并且由于英语水平的问题,我没有完全翻译,有些我觉得不重要的就跳过了,目前看来应该八九不离十,或者说不会影响最终效果,对于英语水平好的读者,可以自行查看原文.但这一年里面我 ...
- 06 Activity的启动模式 Intent的七大属性的总结
1.Task以及back stack >Task(任务) 为了完成一个功能 多个Activity的集合, 当你的应用程序启动时 系统会自动创建Task用于管理Activity ...
- OpenCV3.0 3.1版本的改进
摘要 OpenCV现在更新到了3.1版本,相对OpenCV2有了很大改进,其中对于硬件加速,移动开发(IOS,android)的支持成为亮点. 新版的OpenCV采用了内 ...
- 记录最近的几个bug
记录最近出的几个bug connection reset by peer 最近服务器经常性的出现connection reset by peer的错误,开始我们只是以为小概率的网络断开导致的,可是随着 ...
- Docker教程:docker远程repository和自建本地registry
http://blog.csdn.net/pipisorry/article/details/50814307 Docker有一个类似版本管理仓库(Repositry)的东西,有docker.io提供 ...
- 为何写flash的时候要地址左移一位?
代码一: #define Writeflash(addr,dat) *((volatile INT16U *)(addr<<1))=(INT16U)dat #define Readflas ...
- 修改GDAL库支持RPC像方改正模型
最近在做基于RPC的像方改正模型,方便对数据进行测试,修改了GDAL库中的RPC纠正模型,使之可以支持RPC像方改正参数. 下面是RPC模型的公式,rn,cn为归一化之后的图像行列号坐标,PLH为归一 ...
- 调用start()方法和直接调用run()方法的区别
调用start()方法和直接调用run()方法的区别 新建一个线程,只需要使用new关键字创建一个线程对象,并且调用start()方法即可. Thread thread = new Thread(); ...
- IT职场: 选择外企利与弊
前几天有个同学打电话问我选择国内企业与外企的利弊,很可笑的是他是学机械的:既然和我完全不在一个行业,因此我只是说了我们IT外企的利与弊,毕竟隔行如隔山. 首先简单自我介绍一下,我所在的公司是美资500 ...