This commit is contained in:
lenheart
2024-10-02 21:00:21 +08:00
parent 7f547f5fd4
commit 2d6e633410
16 changed files with 736 additions and 36 deletions

View File

@@ -21,6 +21,52 @@ class MD5 {
Sq_CallFunc(MD5_Final_ptr, "void", ["pointer", "pointer"], Ctx, Result);
}
function base64_encode(input) {
local base64_chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
local inputLength = input.len();
local i = 0;
local j = 0;
local charArray3 = array(3);
local charArray4 = array(4);
local encoded = "";
while (inputLength--) {
charArray3[i++] = input[inputLength];
if (i == 3) {
charArray4[0] = (charArray3[0] & 0xfc) >> 2;
charArray4[1] = ((charArray3[0] & 0x03) << 4) + ((charArray3[1] & 0xf0) >> 4);
charArray4[2] = ((charArray3[1] & 0x0f) << 2) + ((charArray3[2] & 0xc0) >> 6);
charArray4[3] = charArray3[2] & 0x3f;
for (i = 0; i< 4; i++) {
encoded += base64_chars[charArray4[i]];
}
i = 0;
}
}
if (i) {
for (j = i; j< 3; j++) {
charArray3[j] = 0;
}
charArray4[0] = (charArray3[0] & 0xfc) >> 2;
charArray4[1] = ((charArray3[0] & 0x03) << 4) + ((charArray3[1] & 0xf0) >> 4);
charArray4[2] = ((charArray3[1] & 0x0f) << 2) + ((charArray3[2] & 0xc0) >> 6);
charArray4[3] = charArray3[2] & 0x3f;
for (j = 0; j< i + 1; j++) {
encoded += base64_chars[charArray4[j]];
}
while (i++<3) {
encoded += "=";
}
}
return encoded;
}
function GetFile(FileName) {
local Io = IO(FileName, "r+");
@@ -37,6 +83,6 @@ class MD5 {
local Result = Memory.alloc(16);
MD5.MD5_Final(Result.C_Object, Ctx.C_Object);
Io.Close();
return Result.readUtf8String(16);
return base64_encode(Result.readUtf8String(16));
}
}