const
ValidChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567';
// Base32解码
function Base32Decode(const source: string): string;
var
UpperSource: string;
p, i, l, n, j: Integer;
begin
UpperSource := UpperCase(source);
l := Length(source);
n := 0;
j := 0;
Result := '';
for i := 1 to l do
begin
n := n shl 5; // Move buffer left by 5 to make room
p := Pos(UpperSource[i], ValidChars);
if p >= 0 then
n := n + (p - 1); // Add value into buffer
j := j + 5; // Keep track of number of bits in buffer
if (j >= 8) then
begin
j := j - 8;
Result := Result + chr((n and ($FF shl j)) shr j);
end;
end;
end;
// Base32编码
function Base32Encode(str: UTF8String): string;
var
B: Int64;
i, j, len: Integer;
begin
Result := '';
//每5个字符一组进行编码(5个字符x8=40位,5位
Delphi Base32 的加密和解密
最新推荐文章于 2024-07-29 21:25:49 发布
本文详细介绍了如何在 Delphi 开发环境中实现 Base32 的加密和解密操作,包括关键步骤和代码示例,为 Delphi 程序员提供了一种数据安全保护的方法。
摘要由CSDN通过智能技术生成