java安全架构____java MD5加密
2017-02-25 16:20
435 查看
package com.security.md5; import java.security.MessageDigest; /** * @author md5 * */ public class Md5 { public static void main(String[] args) throws Exception { System.out.println("简单md5加密____:"+md5Encode("123456")); //避免不同的人有相同的密文不安全 System.out.println("带key映射的md5加密___:"+md5KeyEncode("zhangsan","123456")); } /** * 简单加密 * @param generalStr 明文 * @return 密文 * @throws Exception */ public static String md5Encode(String generalStr) throws Exception { MessageDigest messageDigest = MessageDigest.getInstance("MD5"); messageDigest.update(generalStr.getBytes()); // 根据明文的字节数组构造 加密后的字符串 可以增加位移算法 独立的key等 byte[] bytes = messageDigest.digest(); String md5Str = ""; for (int i = 0; i < bytes.length; i++) { // System.out.println("每个字节数组数值:"+(char)bytes[i]); // 判断每个字节的数值 小于0的会出现负数 不要 int temp = 0; if (bytes[i] < 0) { temp = 256 + bytes[i]; } else { temp = bytes[i]; } // 当位数不够补位 if (temp < 16) { md5Str = md5Str + "0"; } md5Str = md5Str + Integer.toString(temp, 16); } return md5Str; } /** * 用户名映射 * @param userName 映射key * @param userPwd 明文 * @return 密文 * @throws Exception */ public static String md5KeyEncode(String userName, String userPwd) throws Exception { String code = userName + userPwd; MessageDigest messageDigest = MessageDigest.getInstance("MD5"); messageDigest.update(code.getBytes("UTF-8")); byte[] bytes = messageDigest.digest(); String md5Str = ""; for (int i = 0; i < bytes.length; i++) { int temp = 0; // 当bytes<0 if (bytes[i] < 0) { temp = 256 + bytes[i]; } else { temp = bytes[i]; } // 当位数不够16位时 if (temp < 16) { md5Str = md5Str + "0"; } md5Str = md5Str + Integer.toString(temp, 16); } return md5Str; } }
//运行结果
//网上对比结果
相关文章推荐
- java沙盒安全架构总结
- 【Java安全技术探索之路系列:J2ME安全架构】之一:Java ME安全架构开篇
- 【Java安全技术探索之路系列:Java可扩展安全架构】之十一:JSSE(一):JSSE架构介绍
- 【Java安全技术探索之路系列:Java可扩展安全架构】之十六:JAAS(三):JAAS编程模型
- 【Java安全技术探索之路系列:Java可扩展安全架构】之十五:JAAS(二):JAAS类和接口
- 使用 Acegi 保护 Java 应用程序,第 1 部分: 架构概览和安全过滤器
- 【Java安全技术探索之路系列:Java可扩展安全架构】之二十:SASL(一):SASL架构介绍.md
- 【Java安全技术探索之路系列:Java可扩展安全架构】之九:JCP(二):JCP类和接口
- 【Java安全技术探索之路系列:Java可扩展安全架构】之八:JCP(一):JCP架构介绍
- 【Java安全技术探索之路系列:Java可扩展安全架构】之十八:JGSS(二):JGSS类和接口
- 【Java安全技术探索之路系列:J2SE安全架构】之一:J2SE安全架构开篇
- 【Java安全技术探索之路系列:Java可扩展安全架构】之三:JCA(二):JCA类和接口
- 【Java安全技术探索之路系列:Java可扩展安全架构】之二:JCA(一):JCA架构介绍
- 【Java安全技术探索之路系列:Java可扩展安全架构】之十:JCP(三):JCP编程模型
- 【Java安全技术探索之路系列:Java可扩展安全架构】之五:JCE(一):JCE架构介绍
- 【Java 安全技术探索之路系列:J2SE安全架构】之五:类加载器
- 【Java安全技术探索之路系列:Java可扩展安全架构】之一:Java可扩展安全架构开篇
- 【Java 安全技术探索之路系列:J2SE安全架构】之四:字节码验证器
- 【Java安全技术探索之路系列:Java可扩展安全架构】之十三:JSSE(三):JSSE编程模型
- 【Java安全技术探索之路系列:Java可扩展安全架构】之十九:JGSS(三):JGSS编程模型.md