首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将NSIS格式的字符串编码为UTF-16LE格式?

如何将NSIS格式的字符串编码为UTF-16LE格式?
EN

Stack Overflow用户
提问于 2019-05-06 00:34:24
回答 1查看 208关注 0票数 0

嗨,我正在尝试用Python for NSIS安装程序复制这段代码。

M= hashlib.md5("C:\PROGRAM FILES\My Program".encode('utf-16LE'))

它主要是对字符串进行编码,然后对其应用MD5散列。我找到了用于NSIS的MD5散列插件。但是,我仍然不知道如何将$0中的字符串转换为utf-16LE格式。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2019-05-08 00:13:32

如果您正在构建Unicode安装程序,则可以使用Crypto plug-in并直接将字符串提供给它:

代码语言:javascript
复制
Unicode True
...
Section
Crypto::HashUTF16LE MD5 "The quick brown fox jumps over the lazy dog"
Pop $0
DetailPrint $0 ; B0986AE6EE1EEFEE8A4A399090126837
SectionEnd

ANSI安装程序必须将内容写入文件并对文件进行哈希处理:

代码语言:javascript
复制
Section
InitPluginsDir
StrCpy $1 "The quick brown fox jumps over the lazy dog"
StrLen $3 $1
IntOp $3 $3 * 2 ; UTF-16 is 2 bytes per code-unit
FileOpen $2 "$PluginsDir\Temp.txt" w
System::Call 'KERNEL32::WriteFile(pr2,wr1,ir3,*i,p0)' ; This converts the string for us
FileClose $2
Crypto::HashFile MD5 "$PluginsDir\Temp.txt"
Pop $0
DetailPrint $0
SectionEnd
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55994119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档