有没有办法可以使用sha1编码密码,然后在InnoSetUp中输出base64?
我看到InnoSetup已经有GetSHA1OfString()
,但这不是base64编码,而是十六进制编码。
我发现有人在这里发布了一个功能 http://www.vincenzo.net/isxkb/index.php?title=Encode/Decode_Base64
但是这只是一个ANSI字符串作为输入,所以我不能将GetSHA1OfString()
的输出传递给它。
我想使用sha1对输入说admin
进行base64编码,所以输出应该是
0DPiKuNIrrVmD8IUCuw1hQxNqZc=
感谢任何帮助,提前感谢!!
答案 0 :(得分:0)
FPC带有sha1和base64库,因此您可以编写自己的函数(可以在一行中实现,但是我将其拆分为3个以添加注释):
uses
sha1,
base64;
function GetBase64SHA1OfString(const S: AnsiString): AnsiString;
var
Digest: TSHA1Digest;
DigestStr: AnsiString;
begin
// Compute the SHA1
Digest := SHA1String(S);
// Convert SHA1 to string representation
DigestStr := SHA1Print(Digest);
// Compute base64 of the string representation and return it
Exit(EncodeStringBase64(DigestStr));
end;
begin
Writeln(GetBase64SHA1OfString('Hello!'));
end.