关于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 加密的更多相关文章

  1. Java的单向加密算法MD5和SHA——加密和解密

    出自:http://www.cnblogs.com/onetwo/p/3875551.html 1.JDK中MD5和SHA加密的主要类 在JDK6.0中,与MD5与SHA密切相关的几个类的类图如下:  ...

  2. Java加密技术(一)——加密介绍

    from://http://blog.csdn.net/janronehoo/article/details/7590772 如基本的单向加密算法: BASE64 严格地说,属于编码格式,而非加密算法 ...

  3. MD5和SHA加密实现

    @Test public void TestMD5AndSHA() throws NoSuchAlgorithmException { String MD5=Md5("123456" ...

  4. MD5和sha1加密算法--散列加密技术 MD5:128bit的大整数

    在很多电子商务和社区应用中,我们都要存放很多的客户的资料,其中包括了很多的隐私信息和客户不愿被别人看到的信息,当然好有客户执行各种操作的密码,此时就需要对客户的信息进行加密再存储,目前有两种比较好的加 ...

  5. 常见三种加密(MD5、非对称加密,对称加密)

    转载. https://blog.csdn.net/SSY_1992/article/details/79094556 任何应用的开发中安全都是重中之重,在信息交互异常活跃的现在,信息加密技术显得尤为 ...

  6. md5加密,md5加盐加密和解密

    package com.java.test; import java.security.MessageDigest; import java.security.SecureRandom; import ...

  7. shiro密码的比对,密码的MD5加密,MD5盐值加密,多个Relme

    有具体问题的可以参考之前的关于shiro的博文,关于shiro的博文均是一次工程的内容 密码的比对   通过AuthenticatingRealm的CredentialsMatcher方法 密码的加密 ...

  8. MD5、sha加密

    MD5: 不可逆,一般用于密码的加密存储,数字签名,文件完整性验证 MD5码具有高度离散性,不可预测 MD5长度为128位,重复率几乎为0 易受密码分析的攻击 Sha: 对于长度小于2^64位的消息, ...

  9. DES,AeS加解密,MD5,SHA加密

    1.DES一共就有4个参数参与运作:明文.密文.密钥.向量.其中这4者的关系可以理解为: 密文=明文+密钥+向量: 明文=密文-密钥-向量: 为什么要向量这个参数呢?因为如果有一篇文章,有几个词重复, ...

随机推荐

  1. 为何不能在viewDidLoad方法中显示其他视图

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 你可以使得当视图控制器(view controller)显示自 ...

  2. Android动态加载入坑指南

    曾几何时,国内各大公司掀起了一股研究Android动态加载的技术,两年多过去了,动态加载技术俨然成了Android开发中必须掌握的技术.那么动态加载技术是什么呢,这里谈谈我的个人看法,如有雷同,纯属偶 ...

  3. FFmpeg的H.264解码器源代码简单分析:解析器(Parser)部分

    ===================================================== H.264源代码分析文章列表: [编码 - x264] x264源代码简单分析:概述 x26 ...

  4. Servlet之Response对象

    下面的方法可用于在 Servlet 程序中设置 HTTP 响应报头.这些方法通过HttpServletResponse 对象可用. 1    String encodeRedirectURL(Stri ...

  5. Linux系统调用的实现机制分析

    API/POSIX/C库的关系        系统调用的实现 3.1    系统调用处理程序 添加新系统调用 给Linux添加一个新的系统调用是件相对容易的工作.怎样设计和实现一个系统调用是难题所在, ...

  6. Cocos2D实现上下滚动式状态窗口

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 有时候要显示的内容太多,我们无法在iOS设备的小屏幕上显示出来 ...

  7. C语言--指针函数和函数指针

    指针函数和函数指针 指针函数其实是一个简称,是指带指针的函数,它本质上是一个函数,只是返回的是某种类型的指针.其定义的格式为: 类型标识符 *函数名(参数表)  函数指针,从本质上说是一个指针,只是它 ...

  8. Fedora 19: How to resize/extend (LVM) partition?

    Enlarge the disk using fdisk fdisk -l (to see the partition layout, typically we're dealing with /de ...

  9. 【shell脚本】nginx每天自动切割日志脚本

    nginx每天日志量比较大的时候,最好每天自动切割,存储,这样可以方面以后的查询和分析 #!/bin/sh ################### #filename: nginx_log_rotat ...

  10. Tensorflow使用Cmake在Windows下生成VisualStudio工程并编译

    传送门: https://github.com/tensorflow/tensorflow/tree/r0.12/tensorflow/contrib/cmake http://www.udpwork ...