怎么将字符串用md5加密为md5 32位大写加密的字符串

32位MD5加密Java代码 -
- ITeye技术网站
博客分类:
可以直接使用,直接调用getMD5Str(String str)这个方法,即可返回一个经过MD5加密的字符串。
package com.icss.
import java.security.MessageD
import java.security.NoSuchAlgorithmE
import java.io.UnsupportedEncodingE
public class Md5 {
public String getMD5Str(String str) throws NoSuchAlgorithmException,
UnsupportedEncodingException {
MessageDigest messageDigest =
messageDigest = MessageDigest.getInstance("MD5");
messageDigest.reset();
messageDigest.update(str.getBytes("UTF-8"));
byte[] byteArray = messageDigest.digest();
StringBuffer md5StrBuff = new StringBuffer();
for (int i = 0; i & byteArray. i++) {
if (Integer.toHexString(0xFF & byteArray[i]).length() == 1)
md5StrBuff.append("0").append(
Integer.toHexString(0xFF & byteArray[i]));
md5StrBuff.append(Integer.toHexString(0xFF & byteArray[i]));
return md5StrBuff.toString();
浏览: 65054 次
来自: 北京
使用某个邮箱作为主机发送邮件的时候,需要开通这个邮箱 的smt ...
刚好遇到这个问题2008年6月 VB大版内专家分月排行榜第二
2010年6月 挨踢职涯大版内专家分月排行榜第三2010年5月 挨踢职涯大版内专家分月排行榜第三2010年4月 挨踢职涯大版内专家分月排行榜第三2009年10月 挨踢职涯大版内专家分月排行榜第三
2009年1月 Web 开发大版内专家分月排行榜第一2008年12月 Web 开发大版内专家分月排行榜第一2008年10月 Web 开发大版内专家分月排行榜第一2008年9月 Web 开发大版内专家分月排行榜第一2008年8月 Web 开发大版内专家分月排行榜第一
2009年3月 Web 开发大版内专家分月排行榜第二2009年2月 Web 开发大版内专家分月排行榜第二2008年11月 Web 开发大版内专家分月排行榜第二
2008年6月 VB大版内专家分月排行榜第二
2010年6月 挨踢职涯大版内专家分月排行榜第三2010年5月 挨踢职涯大版内专家分月排行榜第三2010年4月 挨踢职涯大版内专家分月排行榜第三2009年10月 挨踢职涯大版内专家分月排行榜第三
2005年1月 VB大版内专家分月排行榜第二
2005年3月 VB大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。SQL2005对字符串进行MD5加密 - 博客频道 - CSDN.NET
haibin_hu的专栏
程序的世界你不懂我不懂,努力学习
用处:本地保存了用户名和密码的md5加密字符串,启动软件自动登录,用这个字符串与数据库相比较,那么就必须把数据库的字段值先转换为md5的形式才可以进行对比查询
今天要生成2000个优惠券,包括卡号和密码,SQL2005有内置的函数hashbytes可以对字符串进行MD5或SHA1加密,用法:hashbytes('MD5','123456')&&但是加密后的密文是varbinary类型的,也就是0x开头的,它是16进制形式的二进制数据。常情况下,我们需要的都是字符串型的数据,很多人首先想到的可能就是用
CAST 或 Convert 函数将varbinary 转换为 varchar,但这样转换后的结果会是乱码,正确转换 varbinary 可变长度二进制型数据到 16 进制字符串应该使用系统内置函数 sys.fn_VarBinToHexStr();那结合hashbytes函数就可以搞定了。sys.fn_VarBinToHexStr(hashbytes('MD5','123456')),现在数据显示为“0xe10adc3949ba59abbe56e057f20f883e”,其实它已经是字符型了,那再用substring函数截取“0x”后32位就是我们所需要的32位加密的密文了。写法如下:SELECT
substring(sys.fn_VarBinToHexStr(hashbytes('MD5','123456')),3,32)
SELECT substring(sys.fn_VarBinToHexStr(hashbytes('MD5', '123456')),3,32); 结果:A5AE4A801FC3
SELECT substring(sys.fn_VarBinToHexStr(hashbytes('MD5', 字段名)),3,32) &结果:19aa8f019b12
(字段里的值是123456)
结果不一样,后对比发现因为这个字段是nvarchar类型的,改为 cast(字段名 as varchar)后,再次执行上面这句,结果一致了;原因不明
排名:千里之外
(18)(4)(2)(4)(1)(5)(1)百度拇指医生
&&&普通咨询
您的网络环境存在异常,
请输入验证码
验证码输入错误,请重新输入package com.aok.
import java.security.MessageD
public class MD5Test {
public static void main(String[] args) {
String result = MD5("123456");
System.out.println("result: " + result);
System.out.println("length: " + result.length());
* 32位MD5加密的大写字符串
* @param s
public final static String MD5(String s) {
char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'A', 'B', 'C', 'D', 'E', 'F' };
byte[] btInput = s.getBytes();
// 获得MD5摘要算法的 MessageDigest 对象
MessageDigest mdInst = MessageDigest.getInstance("MD5");
// 使用指定的字节更新摘要
mdInst.update(btInput);
// 获得密文
byte[] md = mdInst.digest();
// 把密文转换成十六进制的字符串形式
int j = md.
char str[] = new char[j * 2];
int k = 0;
for (int i = 0; i & i++) {
byte byte0 = md[i];
str[k++] = hexDigits[byte0 &&& 4 & 0xf];
str[k++] = hexDigits[byte0 & 0xf];
return new String(str);
} catch (Exception e) {
e.printStackTrace();
阅读(...) 评论()

我要回帖

更多关于 java md5 32位加密 的文章

 

随机推荐