我想问一下!md5加密有没有64位的!

x911420x 2010-02-01 06:14:41
最近需要加密密文!论坛里好都md5的代码!我也用了一些!发现都是32位的加密!那么怎么进行64位的加密!
...全文
2194 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
jackyjkchen 2010-02-02
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 x911420x 的回复:]
我是用编写C++想将32为16进制的数字转为base64编码 有没有方便一点的算法?
[/Quote]
那就反过来,先用sscanf得到二进制内容,再base64encode
x911420x 2010-02-02
  • 打赏
  • 举报
回复
我是用编写C++想将32为16进制的数字转为base64编码 有没有方便一点的算法?
jackyjkchen 2010-02-02
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 x911420x 的回复:]
引用 5 楼 jackyjkchen 的回复:
引用 4 楼 x911420x 的回复:
举个例子将“000000”加密后结果是:ZwsUcorZkCrsujLiL6T2vQ== 但我的结果是670b14728ad9902aecba32e22fa4f6bd。

拜托,你这是两种编码,一种是base64,一种是16进制……


那我呢将这两个相互转换吗?
[/Quote]
base64编码有相应的算法,可以找,可以写,ATL、tomcrypt、OpenSSL等库里都有,一个Encode一个Decode,你先decode,然后再用sprintf转成16进制字符串即可
x911420x 2010-02-02
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 jackyjkchen 的回复:]
引用 4 楼 x911420x 的回复:
举个例子将“000000”加密后结果是:ZwsUcorZkCrsujLiL6T2vQ== 但我的结果是670b14728ad9902aecba32e22fa4f6bd。

拜托,你这是两种编码,一种是base64,一种是16进制……
[/Quote]

那我呢将这两个相互转换吗?
jackyjkchen 2010-02-02
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 x911420x 的回复:]
一般128位的MD5散列被表示为32位十六进制数字。我的32位指就是这个!但64位的MD5怎么结果是ZwsUcorZkCrsujLiL6T2vQ==24位的还不仅仅是数字!
[/Quote]
跟你说了,这个叫base64编码……
http://baike.baidu.com/view/469071.htm?fr=ala0_1
x911420x 2010-02-02
  • 打赏
  • 举报
回复
一般128位的MD5散列被表示为32位十六进制数字。我的32位指就是这个!但64位的MD5怎么结果是ZwsUcorZkCrsujLiL6T2vQ==24位的还不仅仅是数字!
jackyjkchen 2010-02-02
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 x911420x 的回复:]
举个例子将“000000”加密后结果是:ZwsUcorZkCrsujLiL6T2vQ== 但我的结果是670b14728ad9902aecba32e22fa4f6bd。
[/Quote]
拜托,你这是两种编码,一种是base64,一种是16进制……
x911420x 2010-02-02
  • 打赏
  • 举报
回复
举个例子将“000000”加密后结果是:ZwsUcorZkCrsujLiL6T2vQ== 但我的结果是670b14728ad9902aecba32e22fa4f6bd。
yangyunzhao 2010-02-02
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 x911420x 的回复:]
引用 12 楼 jackyjkchen 的回复:
引用 11 楼 x911420x 的回复:
我是用编写C++想将32为16进制的数字转为base64编码 有没有方便一点的算法?

那就反过来,先用sscanf得到二进制内容,再base64encode


大哥还请好人做到底!sscanf函数怎么用!还有base64encode好像没有这个函数!
[/Quote]
个人觉得sscanf函数不会用且不会自己查询的人,研究MD5是不是早了点?
2010-02-02
  • 打赏
  • 举报
回复
这里有一个比较简洁的 BASE64 库,BSD 协议:
http://synesis.com.au/software/b64.html
qqzijin 2010-02-02
  • 打赏
  • 举报
回复
补充:MD5是散列算法(用来做鉴别用的),不是用来加密的,结果是不可逆的
qqzijin 2010-02-02
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 x911420x 的回复:]
一般128位的MD5散列被表示为32位十六进制数字。我的32位指就是这个!但64位的MD5怎么结果是ZwsUcorZkCrsujLiL6T2vQ==24位的还不仅仅是数字!
[/Quote]

MD5的散列结果为128bit(即16字节),用16进制表示刚好32字节("%.2X",md5[i]).
后面的连续2个等号,应该是BASE64编码(X/3*4=24),编码的源码应该是16字节啊
刚好可以解释
x911420x 2010-02-02
  • 打赏
  • 举报
回复
我有源码呀!也用了!可以的只是结果是32位的16进制数字!可我要将其转化为base64编码呀!
jackyjkchen 2010-02-02
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 x911420x 的回复:]
引用 12 楼 jackyjkchen 的回复:
引用 11 楼 x911420x 的回复:
我是用编写C++想将32为16进制的数字转为base64编码 有没有方便一点的算法?

那就反过来,先用sscanf得到二进制内容,再base64encode


大哥还请好人做到底!sscanf函数怎么用!还有base64encode好像没有这个函数!
[/Quote]
确实没有啊,前面都说了这些都得下第三方库ATL、tomcrypt、OpenSSL,ATL在VC里有,一两句话说不清楚,我看你还是先搞清楚你用的那个MD5到底怎么用的,有源码么,看看他的调用,base64编码应该有
x911420x 2010-02-02
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 jackyjkchen 的回复:]
引用 11 楼 x911420x 的回复:
我是用编写C++想将32为16进制的数字转为base64编码 有没有方便一点的算法?

那就反过来,先用sscanf得到二进制内容,再base64encode
[/Quote]

大哥还请好人做到底!sscanf函数怎么用!还有base64encode好像没有这个函数!
2010-02-01
  • 打赏
  • 举报
回复
你这个 32 位指的是什么?是指计算过程中那几个中间变量是 32-bit 还是说结果是 32 位 16 进制数?
x911420x 2010-02-01
  • 打赏
  • 举报
回复
请问应当载明截取!?MD5的值是128位的是不是MD5("a") = 0cc175b9c0f1b6a831c399e269772661这样的值?那我应当载明怎么样截取?请高手解答!
nscboy 2010-02-01
  • 打赏
  • 举报
回复
MD5散列值是128位的
所谓64位MD5的就是先计算出MD5值,然后截取中间的一段.
另外重申一个概念.MD5不是加密算法.它是hash(散列)算法,它是不可逆的.

65,187

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧