delphi文件夹加密
A. delphi 中这4个都是关于加密的MD5String、MD5File、MD5Print、MD5Match,请问解密的算法怎么实现。
MD5是单向加密,不存在解密。
是一个公开的算法,一般用于文件的数字签名
想解密的话应该只能做一个库去记录下比如某个字符经过MD5加密后的值。
记得好像有专门查询MD5加密前值的网站。
你所说的四个加密函数应该是delphi对MD5加密的再次封装,理论上一样的
B. delphi实现DES字节流加密,该怎么解决
在 CnPack 提供的源代码包里,提供了 des 加解密单元文件,提供了以下四个功能函数:
function DESEncryptStr(Str, Key: AnsiString): AnsiString;
{* 传入明文与加密 Key,DES 加密返回密文,
注:由于密文可能含有扩展 ASCII 字符,因此在 DELPHI 2009 或以上版本中,请用
AnsiString 类型的变量接收返回值,以避免出现多余的 Unicode 转换而导致解密出错}
function DESDecryptStr(Str, Key: AnsiString): AnsiString;
{* 传入密文与加密 Key,DES 解密返回明文}
function DESEncryptStrToHex(Str, Key: AnsiString): AnsiString;
{* 传入明文与加密 Key,DES 加密返回转换成十六进制的密文}
function DESDecryptStrFromHex(StrHex, Key: AnsiString): AnsiString;
{* 传入十六进制的密文与加密 Key,DES 解密返回明文}
C. Delphi加密算法
我用的加密解密
function EncryptString(Source, Key: string): string;
//对字符串加密(Source:源 Key:密匙)
var
KeyLen: integer;
KeyPos: integer;
Offset: integer;
Dest: string;
SrcPos: integer;
SrcAsc: integer;
Range: integer;
begin
KeyLen := Length(Key);
if KeyLen = 0 then
Key := 'delphi';
KeyPos := 0;
Range := 256;
randomize;
Offset := random(Range);
Dest := format('%1.2x', [Offset]);
for SrcPos := 1 to Length(Source) do
begin
SrcAsc := (Ord(Source[SrcPos]) + Offset) mod 255;
if KeyPos < KeyLen then
KeyPos := KeyPos + 1
else
KeyPos := 1;
SrcAsc := SrcAsc xor Ord(Key[KeyPos]);
Dest := Dest + format('%1.2x', [SrcAsc]);
Offset := SrcAsc;
end;
result := Dest;
end;
function UnEncryptString(Source, Key: string): string;
//对字符串解密(Src:源 Key:密匙)
var
KeyLen: integer;
KeyPos: integer;
Offset: integer;
Dest: string;
SrcPos: integer;
SrcAsc: integer;
TmpSrcAsc: integer;
begin
KeyLen := Length(Key);
if KeyLen = 0 then
Key := 'delphi';
KeyPos := 0;
Offset := strtoint('$' + (Source, 1, 2));
SrcPos := 3;
repeat
SrcAsc := strtoint('$' + (Source, SrcPos, 2));
if KeyPos < KeyLen then
KeyPos := KeyPos + 1
else
KeyPos := 1;
TmpSrcAsc := SrcAsc xor Ord(Key[KeyPos]);
if TmpSrcAsc <= Offset then
TmpSrcAsc := 255 + TmpSrcAsc - Offset
else
TmpSrcAsc := TmpSrcAsc - Offset;
Dest := Dest + chr(TmpSrcAsc);
Offset := SrcAsc;
SrcPos := SrcPos + 2;
until SrcPos >= Length(Source);
result := Dest;
end;
D. 用delphi创建的excel 文件,能在创建时对他加密吗
我用delphi创建excel来进行数据的备份,但想对创建的文件加密,请高手指导
E. 请教DELPHI编程实现“透明文件加密的问题 ”
利用TFileStream(其实内存流、文件读取我都试过了),TFileStream.ReadBuffer(Bbuf[0],sizeB)赋值给Bbuf动态byte数组。
不一样的情况出现了,我直接把动态数组Bbuf传递给FrontSealcard或者BackSealcard字符指针,编译器报错。
进行转换为ppF := PChar(Fbuf);然后程序返回值永远不正常。
F. delphi 中的 MD5 加密怎么用
1.在Delphi自带的Indy控件中其实是提供了MD2,MD4,MD5对象的,可以直接使用来完成MD5的签名算法。不需要DLL或是Pas。 2.在Uses单元中引用 IdHashMessageDigest,IdGlobal, IdHash 单元,再写如下代码即可以达到MD5的实现。
G. DELPHI 中INI文件加密还原的问题
可以用异或加密算法。用明文的ASCII码值同密钥进行异或运算,得到密文,解密时用密文同密钥在进行异或运算即可得到明文
H. 在delphi中怎样实现SHA1加密
方法一、使用 delphi 内置函数。
delphi 的 IdHashSHA 单元,提供了 TidHashSHa1 类,可以实现 SHA1 加密。
方法二、使用第三方控件。
如:CnPack 小组提供的 CnSHA1。示例代码如下:
1
2
3
4
5
6
7
8
procere TForm1.btnSha1Click(Sender: TObject);
begin
{$IFDEF UNICODE}
pnlSha1.Caption := SHA1Print(SHA1StringA(AnsiString(edtSha1.Text)));
{$ELSE}
pnlSha1.Caption := SHA1Print(SHA1String(edtSha1.Text));
{$ENDIF}
end;