关于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")); }
}

最新文章

  1. Spring IoC源码解读——谈谈bean的几种状态
  2. Oracle常见SQL语句
  3. 使用Maven编译项目时提示程序包javax.servlet.http不存在
  4. xps 文件操作笔记
  5. 搭建完整邮件系统(postfix+dovecot+clamAV+Spamassassin+amavisd-new)
  6. SKKeyframeSequence类
  7. C#比较两个时间大小
  8. Angular - - ngChange、ngChecked、ngClick、ngDblclick
  9. asp.net mvc ajax提交模型到控制器
  10. hashCode方法和equals方法比较
  11. TzObjectInspector 一例
  12. java设计模式---桥接模式
  13. 报错:Exception in thread "main" java.lang.NoClassDefFoundError: Lorg/apache/hadoop/fs/FileSystem
  14. git tag的用法
  15. Vuejs——(3)计算属性,样式和类绑定
  16. 点击LinearLayout使用selector改变TextView字体颜色
  17. TCP粘包问题分析和解决(全)
  18. Android点击事件
  19. “全栈2019”Java异常第十四章:将异常输出到文本文件中
  20. 创建.NET Core程序的Nuget Package

热门文章

  1. 自守数算法----C语言实现
  2. Erlang 集群互连测试
  3. UNIX网络编程——epoll 的accept , read, write(重要)
  4. Cocos2D瓦块地图高清屏(retina)显示比例问题的解决
  5. Java开发各层对象含义 PO,VO,DAO,BO,POJO
  6. 06 Activity的启动模式 Intent的七大属性的总结
  7. jquery实战---标签页效果
  8. 流量控制闸门——LimitLatch套接字连接数限制器
  9. (国内)完美下载Android源码Ubuntu版
  10. pig 的chararry类型不能用比较运算符comparison operator