MD5加密算法(实际应用)

 1 package Util;
 2
 3 import java.security.MessageDigest;
 4 import java.security.NoSuchAlgorithmException;
 5
 6 import sun.security.provider.MD5;
 7
 8 public class MD5Util {
 9 private static final char[] hexDigest = new char[]{‘0‘,‘1‘,‘2‘,‘3‘,‘4‘,‘5‘,‘6‘,‘7‘,‘8‘,‘9‘,‘A‘,‘B‘,‘C‘,‘D‘,‘E‘,‘F‘};
10
11     /**
12      * MD5加密算法
13      * @param content
14      * @return
15      */
16     public static String md5(String content)
17     {
18         try {
19             //1. 返回实现指定摘要算法的 MessageDigest 对象
20             MessageDigest md = MessageDigest.getInstance("MD5");
21
22             //2.获取待加密字符串的byte数组
23             byte[] bytes = content.getBytes();
24
25             //3.使用指定的 byte 数组更新摘要
26             md.update(bytes);
27
28             //4.加密: 通过执行诸如填充之类的最终操作完成哈希计算
29             byte[] newBytes = md.digest();    //得到长度为16的字节数组
30
31             //5.将长度为16的byte数组表示为32位十六进制数字
32             /*byte a = -81;
33             System.out.println(Integer.toBinaryString(a));      //111111111111111111111111  1010 1111  字节有效位8位
34             System.out.println(Integer.toBinaryString(a >>> 4 & 0xf));//111111111111111111111111  1010  无符号右移四位,与0xf做与运算,去24个1
35             System.out.println(Integer.toBinaryString(a & 0xf));//1111
36 */
37             //System.out.println(Integer.toHexString(a >>> 4 & 0xf));
38             //System.out.println(Integer.toHexString(a & 0xf));
39
40             char[] result = new char[newBytes.length * 2];//定义存储十六进制数结果的字符数组
41             int k = 0;
42             for (int i = 0; i < newBytes.length; i++) {
43                 byte c = newBytes[i];
44                 result[k++] = hexDigest[c >>> 4 & 0xf];//高四位
45                 result[k++] = hexDigest[c & 0xf]; //低四位
46             }
47
48             return new String(result);
49
50         } catch (NoSuchAlgorithmException e) {
51             e.printStackTrace();
52         }
53         return "";
54     }
55 }

将此类封装进工具包中,需要加密时即可取出使用

时间: 2024-10-26 09:55:45

MD5加密算法(实际应用)的相关文章

MD5加密算法(java及js)

为了防止用户登陆过程中信息被拦截导致信息泄露,我们应该在客户端就对用户密码进行加密.浏览器提交给服务器的是加密后的信息,即使被恶意拦截,被拦截信息也已做了加密处理,现在比较安全的一种加密算法是MD5加密算法,尽管MD5是一种单向的加密算法,但网上也有破解网站,所以为了进一步提高安全性,可以进行两次md5加密,或者结合其他的加密方法如3des等进行二次加密. 代码如下: js版: var hexcase = 0; function hex_md5(a) { if (a == "") re

IOS开发基础之—MD5加密算法

IOS开发基础之—MD5加密算法 MD5加密算法,实现类别如下: #import <CommonCrypto/CommonDigest.h> @interface NSString (md5) -(NSString *) md5HexDigest; @end #import "NSString+MD5HexDigest.h" @implementation NSString (md5) -(NSString *) md5HexDigest { const char *ori

RFC1321 MD5加密算法

global.h 1 /* GLOBAL.H - RSAREF types and constants 2 */ 3 4 /* PROTOTYPES should be set to one if and only if the compiler supports 5 function argument prototyping. 6 The following makes PROTOTYPES default to 0 if it has not already 7 been defined w

MD5加密算法的识别

通过MD5加密算法原理的介绍,会了解到MD5在加密的过程中,有几个固定的流程(特征),在逆向分析的过程中通过这些特征可以识别出当前使用的是MD5的加密算法,从而更高效的分析还原算法. 整理下MD5加密的几个特征: 1. 处理的数据是512位为1组,补位数据的填充方式 2. 4个初始常数 A=0X67452301L,B=0XEFCDAB89L,C=0X98BADCFEL,D=0X10325476L (4个初始常数的值为主要特征) 3. 4轮Hash运算 (每轮的移位次数及运算的常量为主要特征) 第

XE6 MD5 加密算法

XE6 MD5 加密算法Delphifunction MD5(const texto: string): string; var idmd5: TIdHashMessageDigest5; begin idmd5 := TIdHashMessageDigest5.Create; try result := idmd5.HashStringAsHex(texto); finally idmd5.Free; end; end; c++builder #include <IdHashMessageDi

MD5加密算法详细分析_C实现

MD5加密算法 本文为原创作品,转载请注明出处:http://write.blog.csdn.net/postedit/51736426--开心! 维基百科对其描述: MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致.MD5由罗纳德·李维斯特设计,于1992年公开,用以替换MD4算法.这套算法的程序在 RFC 1321 中被加以规范. 将

一起谈谈MD5加密算法

MD5是一个安全的散列算法,输入两个不同的明文不会得到相同的输出值,根据输出值,不能得到原始的明文,即其过程不可逆:所以要解密MD5没有现成的算法,只能用穷举法,把可能出现的明文,用MD5算法散列之后,把得到的散列值和原始的数据形成一个一对一的映射表,通过比在表中比破解密码的MD5算法散列值,通过匹配从映射表中找出破解密码所对应的原始明文. 对信息系统或者网站系统来说,MD5算法主要用在用户注册口令的加密,对于普通强度的口令加密,可以通过以下三种方式进行破解: (1)在线查询密码.一些在线的MD

MD5加密算法简单示例

MD5加密算法简单示例 现在网络上一般的网站,只要功能稍微完善一点的,都需要用户进行注册,提供诸如用户名.用户密码.电子邮件.甚至是电话号码.详细住址等个人隐私信息,然后才可以享受网站提供的一些特殊的信息或者服务.为了增加安全性,有必要对数据库中的隐私数据进行加密. MD5算法,即"Message-Digest Algorithm 5(信息-摘要算法)",它是由MD2.MD3.MD4 发展而来的一种单向加密算法,也就是哈希(HASH)算法,是由国际著名的公钥加密算法标准RSA的第一设计

md5加密算法c语言版

from: http://blog.sina.com.cn/s/blog_693de6100101kcu6.html 注:以下是md5加密算法c语言版(16/32位) --------------------------------------------------- 网上找到的md5函数的实现,包括三个文件,依次如下: 头文件 TL_MD5.h 1 [cpp] 2 #ifndef MD5_H 3 #define MD5_H 4 5 typedef struct 6 { 7 unsigned