点点滴滴
访问量:
sopper
博客园
首页
新随笔
新文章
联系
订阅
管理
posts - 90,comments - 141,trackbacks - 8
<
2007年1月
>
日
一
二
三
四
五
六
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
昵称:
sopper
园龄:
6年1个月
粉丝:
2
关注:
0
搜索
常用链接
我的随笔
我的评论
我的参与
最新评论
我的标签
最新随笔
1. Visual Assist X设置 转
2. mac入门系列教程之二–-Mac与众不同(4) 转
3. mac入门系列教程之二–-Mac与众不同(3) 转
4. mac入门系列教程之二–-Mac与众不同(2) 转
5. mac入门系列教程之二–Mac与众不同(1) 转
6. C++带有指针数组的结构体转换为C#可用的结构体
7. C#调用C++版本dll时的类型转换要注意的问题
8. 小技巧
9. 瑞星版本20.49.30的Bug
10. C++控件的数据交换和数据校验
我的标签
socket
(1)
线程
(1)
Equals
(1)
小技巧
(1)
随笔档案
2010年12月 (1)
2010年8月 (4)
2010年4月 (2)
2008年10月 (1)
2008年6月 (1)
2008年5月 (2)
2008年4月 (1)
2008年3月 (3)
2008年2月 (1)
2008年1月 (2)
2007年12月 (8)
2007年11月 (1)
2007年6月 (7)
2007年5月 (3)
2007年3月 (8)
2007年1月 (15)
2006年12月 (2)
2006年11月 (8)
2006年10月 (1)
2006年4月 (19)
C#blog友情连接
C# Open Source
a
www.oazabir.com
开心就好【博客堂】
清清月儿
天道酬勤
积分与排名
积分 - 80748
排名 - 1282
最新评论
阅读排行榜
评论排行榜
推荐排行榜
c# MD5加密算法的实例
环境:vs.net2005
/
sql server2000
/
xp测试通过
1
.MD5 16位加密实例
using
System;
using
System.Collections.Generic;
using
System.Text;
using
System.Security.Cryptography;
namespace
md5
{
class
Program
{
static
void
Main(
string
[] args)
{
Console.WriteLine(UserMd5(
"
8
"
));
Console.WriteLine(GetMd5Str(
"
8
"
));
}
/**/
///
<summary>
///
MD5 16位加密
///
</summary>
///
<param name="ConvertString"></param>
///
<returns></returns>
public
static
string
GetMd5Str(
string
ConvertString)
{
MD5CryptoServiceProvider md5
=
new
MD5CryptoServiceProvider();
string
t2
=
BitConverter.ToString(md5.ComputeHash(UTF8Encoding.Default.GetBytes(ConvertString)),
4
,
8
);
t2
=
t2.Replace(
"
-
"
,
""
);
return
t2;
}
/**/
///
<summary>
///
MD5 32位加密
///
</summary>
///
<param name="str"></param>
///
<returns></returns>
static
string
UserMd5(
string
str)
{
string
cl
=
str;
string
pwd
=
""
;
MD5 md5
=
MD5.Create();
//
实例化一个md5对像
//
加密后是一个字节类型的数组,这里要注意编码UTF8/Unicode等的选择
byte
[] s
=
md5.ComputeHash(Encoding.UTF8.GetBytes(cl));
//
通过使用循环,将字节类型的数组转换为字符串,此字符串是常规字符格式化所得
for
(
int
i
=
0
; i
<
s.Length; i
++
)
{
//
将得到的字符串使用十六进制类型格式。格式后的字符是小写的字母,如果使用大写(X)则格式后的字符是大写字符
pwd
=
pwd
+
s[i].ToString(
"
X
"
);
}
return
pwd;
}
}
}
绿色通道:
好文要顶
关注我
收藏该文
与我联系
posted on 2007-01-08 18:59
sopper
阅读(5276)
评论(13)
编辑
收藏
FeedBack:
1481305
#1楼
2007-04-09 13:51
|
stone[未注册用户]
方法中有小错误:
pwd = pwd + s[i].ToString("X");
如果s[i]是0~9,则只能转换为一位十六进制,不会占二位十六进制,最终得到的正确的值
回复
引用
#2楼
2007-07-02 00:47
|
sunday
兄弟有加密就没有解密吗??那就等于有毒药就没有解药了..
回复
引用
#3楼
2007-07-31 18:17
|
过路的爱梅[未注册用户]
有错误,转换出来的值有错误
回复
引用
#4楼
2007-08-09 21:02
|
sopper[未注册用户]
@过路的爱梅
请指明错误在哪里?
你认为原因是?
谢谢
回复
引用
#5楼
2007-09-03 14:24
|
daniel[未注册用户]
32位md5加密得到的结果居然大多数时候位数不够,怎么回事儿?
回复
引用
#6楼
2007-09-27 08:29
|
田倩[未注册用户]
有没有简单的winform注册实例啊
回复
引用
#7楼
2007-09-27 08:31
|
田倩[未注册用户]
将注册信息最后添加到access数据库中。。。。登录时验证数据库中是否存在该用户
回复
引用
#8楼
[
楼主
]
2007-09-27 09:23
|
sopper
@田倩
不明白你意思
回复
引用
查看
#9楼
2008-05-13 13:47
|
浅愿[未注册用户]
怎么结果中的0全部不见了。导致结果位数不够。
回复
引用
#10楼
2008-09-11 19:08
|
wintersday[未注册用户]
if (s[i] < 16)
{
pwd = pwd + "0" + s[i].ToString("x");
}
else
{
pwd = pwd + s[i].ToString("x");
}
回复
引用
#11楼
2008-10-19 23:59
|
niming[未注册用户]
pwd = pwd + s[i].ToString("x2");
回复
引用
#12楼
2009-03-19 14:50
|
yuhu[未注册用户]
TextBox3.Text = FormsAuthentication.HashPasswordForStoringInConfigFile(TextBox2.Text, "MD5");
TextBox4.Text = FormsAuthentication.HashPasswordForStoringInConfigFile(TextBox2.Text, "SHA1");
我用这两条语句也很管用。
回复
引用
注册用户登录后才能发表评论,请
登录
或
注册
,
返回博客园首页
。
首页
博问
闪存
新闻
园子
招聘
知识库
最新IT新闻
:
·
最想要的Entity Framework功能
·
专访Jeffrey Richter:Windows 8是微软的重中之重
·
《福布斯》:谷歌进军硬件产品 难撼动苹果地位
·
美国空军拟最多购买1.8万台iPad 2
·
分析称专利之争让谷歌苹果两败俱伤
»
更多新闻...
最新知识库文章
:
·
高级编程语言的发展历程
·
如何学习一门新的编程语言?
·
学习不同编程语言的重要性
·
为什么我喜欢富于表达性的编程语言
·
计算机专业的女生为什么要学编程
»
更多知识库文章...
China-pub 2011秋季教材巡展
China-Pub 计算机绝版图书按需印刷服务