我正在寻找适用于 SHA512 的纯 Lua 5.1 改编版,但无论我走到哪里都没有结果。我发现了一个类似的问题,有人试图将 SHA256 适配转换为 SHA512(除非他使用的是 Lua 5.3): SHA2 512 适配给出了错误的结果
基本上我不能使用按位运算符(在 Lua 5.1 中没有实现),所以我不得不编写我自己的它们的实现。
这是我的代码:
local MOD = 2^64;
local MODM = MOD-1;
local function memoize(f)
local mt = {}
local t = setmetatable({}, mt)
function mt:__index(k)
local v = f(k)
t[k] = v
return v
end
return t
end
local function make_bitop_uncached(t, m)
local function bitop(a, b)
local res,p = 0,1
while a ~= 0 and b ~= 0 do
local am, bm = a …Run Code Online (Sandbox Code Playgroud)