明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 535|回复: 7

[提问] 求助能够将汉字转化为MD5的方法

[复制链接]
发表于 2024-6-26 21:15:45 | 显示全部楼层 |阅读模式
1明经币
论坛中的找到的转化MD5的方法,好像仅对非中文汉字有效,比如用论坛中的lisp函数(YC:MD5 "你好") 得到的MD5 是 b94ae3c6d892b29cf48d9bea819b27b9,而用https://md5jiami.bmcx.com/这个网址生成的是7eca689f0d3389d9dea66ae112e5cfd7;

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2024-6-26 21:55:26 | 显示全部楼层
反正MD5不能反向验证。只要保证自己的算法是单向唯一就行,不需要非和别人一样的算法。你甚至可以把别人的结果直接反序当做自己的MD5.
回复

使用道具 举报

 楼主| 发表于 2024-6-27 08:09:48 | 显示全部楼层
kozmosovia 发表于 2024-6-26 21:55
反正MD5不能反向验证。只要保证自己的算法是单向唯一就行,不需要非和别人一样的算法。你甚至可以把别人的 ...

因为百度翻译api需要把翻译的原字符串转成MD5才能,进行正确调用,所以这个汉字转MD5就一定要正确;我研究的结果是这个汉字和放到txt文档里通过读取进行转换,但是转换的前提是这个TXT文档的编码格式需要是UTF-8的格式才正确转换。但是这边又存在一个问题,lisp在调用写入汉字到txt时,会自动把UTF-8格式的txt文档改为ANSI的编码格式保存,程序在读取转换为MD5时就又会出错。这时候,我就又想到是不是可以将ANSI格式的文档用lisp直接转换成UTF-8格式,在论坛里也找到了相关的代码程序,可是这时候又出现了新的问题:用论坛的方法转换出来的格式变成了带BOM的utf-8的编码格式,所以结果自然还是不行,所以发帖求助,看看是不是有直接将汉字转换为MD5的方法
回复

使用道具 举报

发表于 2024-6-27 09:58:57 | 显示全部楼层
胡扯呢吧,MD5是不能反向验证的。你传MD5给API,API不可能知道源码。一段1000个字的字符串,出来的MD5也就32个字符,你觉得天底下有可能根据这32个字符就可以推导出原来的1000个字符?
你说的转码恐怕是base64吧。
回复

使用道具 举报

 楼主| 发表于 2024-6-27 10:59:57 | 显示全部楼层
kozmosovia 发表于 2024-6-27 09:58
胡扯呢吧,MD5是不能反向验证的。你传MD5给API,API不可能知道源码。一段1000个字的字符串,出来的MD5也就3 ...

没有胡扯啊,可能我表达错了,给百度翻译API发送的经过MD5加密的汉字字符串,应该是百度用于验证的,确实是需要正确的汉字的MD5,你可以看看那下面的描述:Step1. 将请求参数中的 APPID(appid), 翻译 query(q,注意为UTF-8编码),随机数(salt),以及平台分配的密钥(可在管理控制台查看) 按照 appid+q+salt+密钥的顺序拼接得到字符串 1。
Step2. 对字符串 1 做 MD5 ,得到 32 位小写的 sign。
注:
1. 待翻译文本(q)参数需为 UTF-8 编码;
2. 在生成签名拼接 appid+q+salt+密钥 字符串时,q 不需要做 URL encode,在生成签名之后,发送 HTTP 请求之前才需要对要发送的待翻译文本字段 q 做 URL encode;
3.如遇到报 54001 签名错误,请检查您的签名生成方法是否正确,在对 sign 进行拼接和加密时,q 不需要做 URL encode,很多开发者遇到签名报错均是由于拼接 sign 前就做了 URL encode;
4.在生成签名后,发送 HTTP 请求时,如果将 query 拼接在URL上,需要对 query 做 URL encode
回复

使用道具 举报

发表于 2024-6-27 13:10:01 | 显示全部楼层
Leemac有个算MD5的函数,不过速度比较慢,baitang好像也有个算MD5的fas。不过百度这个API需要的MD5,要是自己用,固定一个随机数,MD5是一毛一样的,所以没必要每次算,直接找网站算出来硬写进去就是了。
回复

使用道具 举报

发表于 2024-6-27 16:04:37 | 显示全部楼层
汉字内容一样,编码不同,md5的结果自然不同。
低版本的编码为 ansi , 也就是gb2312. 高版本的是 unicode , 网络上一般是utf8.
调用baidu api 需要编码一致。
回复

使用道具 举报

 楼主| 发表于 2024-6-27 16:09:13 | 显示全部楼层
vitalgg 发表于 2024-6-27 16:04
汉字内容一样,编码不同,md5的结果自然不同。
低版本的编码为 ansi , 也就是gb2312. 高版本的是 unicode  ...

是的啊,不过目前在QQ群找到前辈帮忙解决了,汉字转MD5的方法了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 13:53 , Processed in 0.213614 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表