社区
语言基础/算法/系统设计
帖子详情
MD5 加密 Unicode 的问题
DavisLee888
2009-10-14 10:40:03
因为要与WebService进行通信,需要进行验证。
在Delphi中使用MD5,单字节(Ansi)的结果相同,但双字节(Unicode)的结果不同。
而WebService已经在使用,无没更改验证方式。
有没有高人帮帮,处理MD5,Unicode啊!!!
...全文
508
7
打赏
收藏
MD5 加密 Unicode 的问题
因为要与WebService进行通信,需要进行验证。 在Delphi中使用MD5,单字节(Ansi)的结果相同,但双字节(Unicode)的结果不同。 而WebService已经在使用,无没更改验证方式。 有没有高人帮帮,处理MD5,Unicode啊!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
DavisLee888
2009-10-15
打赏
举报
回复
我也想用ANSI的编码,对方系统,不能改啊!!!!!
haitao
2009-10-15
打赏
举报
回复
记得以前遇到过(asp和delphi交互时),没有彻底解决
简单绕开了:都编码为ascii可见字符(如base64)再md5
DavisLee888
2009-10-15
打赏
举报
回复
C#的MD5没作转换处理,所以UNICODE与ANSI不一样,,《《---这个不明白啊??
我那个里面的UNICODE与ANSI处理结果是相同的《《这个试过是一样的。嘻嘻。
阿发伯
2009-10-15
打赏
举报
回复
C#的MD5没作转换处理,所以UNICODE与ANSI不一样,我那个里面的UNICODE与ANSI处理结果是相同的
DavisLee888
2009-10-14
打赏
举报
回复
先谢谢回帖!!再看看,你的类先。。。
我试过ANSI的MD5很正常,
如:123(ANSIString)
MD5:202CB962AC59075B964B07152D234B70
就是不会处理Unicode的
C#的MD5('123')
Ansi:202cb962ac5975b964b7152d234b70
Unicode:5fa285e1bebea6623e33afc4a1fbd5
阿发伯
2009-10-14
打赏
举报
回复
看我的这篇BLOG文章内容是否适合你的要求:
http://blog.csdn.net/maozefa/archive/2007/06/15/1653560.aspx
s11ss
2009-10-14
打赏
举报
回复
把AnsiString转换为WideString?
VC
MD5
加密
适用于
UNICODE
工程
VC
MD5
加密
适用于
UNICODE
工程
ASP版hmac和
md5
加密
函数,支持中文,带
unicode
和utf8转码
上次曾经传过一个易宝、支付宝、财付通、云网等多用
MD5
加密
程序。 易宝是采用hmac的
MD5
加密
,提供的ASP版函数不支持中文,使用dll注册那个兼容又不太好。 上次我发布的
加密
程序也不支持中文,且支付宝那个
加密
函数是错误的。 为此我专门研究了三天的hmac方案,当然了我也只是通过改进代码反复测试而已。 先是调用易宝提供的C++版dll,因为我知道它支持中文。我先是把ASP版的密钥key进行
unicode
处理, 然后用中文密钥与dll版
加密
结果竟然一致了。当时一高兴,认为处理中文字符肯定是采用
unicode
的。 结果把密文换成中文一试,又不行了。我又想到按普通字符处理,中文字符再And &HFF,反复试验还是不行。 浪费了两天,也找到了另一个C++版hmac函数源码,没看到有字符编码处理。最后才想到易宝提供的其它源码。 PHP源码还是比较容易看懂的,原来
加密
的字符text和密钥key都是先转换为UTF-8编码。 这一点与原先那个dll里就可能不一致,把PHP上传到空间一测试,果然密钥使用中文是不一样的。 我也无法知道易宝自己到底使用哪一种方案,先设计一个UTF-8的转码函数吧。 网上找了下,光这些函数都有几十K大小,还是自己设计省事。ASP版的hmac都不支持中文,就是没有转码函数。 VB还有StrConv可以转换
unicode
,ASP却不能用。其实我们常用的ASP版
md5
加密
,与其它程序的也是不兼容中文。 原因还是ASP转换
unicode
十分困难,但是支付宝的接口是有这么个函数的,而且代码很简练,我参考它设计了UTF-8编码函数。(支持多国语言的哦) 经过三天的改进,程序从17K精简到了9K,使hmac兼容中文,
md5
也提供了两个版本,一是ASP简版,二是标准版。 这个标准版是指其它程序都在采用的
unicode
编码方案,其实ASP简版才是我们最多使用的,但它并不通用。 调用方法:Hmac
Md5
(text,key)-
加密
内容支持中文,但key最好用非中文的。
md5
(text)-简版,ASP_
MD5
(text)-标准版 支付宝一定要用ASP_
MD5
,财付通的
加密
内容一般没中文的,所以两者均可。
PB可用
md5
加密
、des加解密,Base64编码DLL、附PB11.5调用例程
较之前上传版本增加了base64编码功能,
md5
、des、base64都增加了专门的
unicode
调用声明,方便多语言操作, 代码里有一个拖拽文件显示路径的sle
Delphi
加密
代码(含
MD5
,DES等多种
加密
方式)
曾经用于多个大型商业项目,实践证明是高效和安全加解密模块。 完全开放源码,您可以自由加入到您的项目中。 包含
MD5
散列、DES
加密
、以及自定义
加密
Python
MD5
加密
实例详解
详解Python
MD5
加密
Python 3下
MD5
加密
# 由于
MD5
模块在python3中被移除 # 在python3中使用hashlib模块进行
md5
操作 import hashlib # 待
加密
信息 str = 'this is a
md5
test.' # 创建
md5
对象 hl = hashlib.
md5
() # Tips # 此处必须声明encode # 若写法为hl.update(str) 报错为:
Unicode
-objects must be encoded before hashing hl.update(str.encode(encoding='utf-8')) p
语言基础/算法/系统设计
16,749
社区成员
33,245
社区内容
发帖
与我相关
我的任务
语言基础/算法/系统设计
Delphi 语言基础/算法/系统设计
复制链接
扫一扫
分享
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章