delphi源码加密
1. delphi实现的DES加密,当输入明文为64位的时候,输出密文为128位。这是为什么应该如何修改程序
那是因为你调用的方法是把des加密后的密文的每一位都转成16进制了,16进制不够两位,前面自动补0了。要修改的话,把加密解密方法转16进制的代码注释了就可以了。
2. 谁能告诉我,源代码加密,用什么可以
这个就要用专业的源代码加密软件去加密了。因为源代码涉及到的编译环境会相对复杂的。我目前了解到就是天锐绿盾这个品牌的加密软件。
绿盾源代码加密系统在不改变研发人员原有工作习惯和工作流程的情况下,对EditPlus、Notepad++、ultraEdit、Eclipse、MyEclipse、 Keil、Visusl
studio等源代码开发工具,以及CAM350、PADS、Altium
Designer、Cadence、MentorGraphics等电路设计软件进行受控加密保护。源代码文件加密后,不影响软件的正常编译,合法用户正常双击打开,在授权范围内使用。
3. Delphi常用的字符串(密码)加密方式都有哪几种哪种方法可以将数字字母混合加密成纯数字
多了,des、aes、base64、rsa、md5、sha等等,等等,数不胜数。每一种算法,都可以将数字字母加密成纯数字。因为加密的结果可以再加密。比如aes加密后的密文,是16进制的东西,我们可以把这个结果转换成10进制,不就成了纯数字了吗?所以,所有算法,都可以实现你所说的。
4. 在delphi中怎样实现SHA1加密
方法一、使用 delphi 内置函数。
delphi 的 IdHashSHA 单元,提供了 TidHashSHa1 类,可以实现 SHA1 加密。
方法二、使用第三方控件。
如:CnPack 小组提供的 CnSHA1。示例代码如下:
procereTForm1.btnSha1Click(Sender:TObject);
begin
{$IFDEFUNICODE}
pnlSha1.Caption:=SHA1Print(SHA1StringA(AnsiString(edtSha1.Text)));
{$ELSE}
pnlSha1.Caption:=SHA1Print(SHA1String(edtSha1.Text));
{$ENDIF}
end;
5. Delphi的MD5加密算法为什么加密中文有问题
md5是基于字节加密的,无论是delphi还是c#之类的,如果字符串编码不同(比如是用utf8、gbk还是unicode),那加密的结果自然都不一样。
6. 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;
7. delphi 中这4个都是关于加密的MD5String、MD5File、MD5Print、MD5Match,请问解密的算法怎么实现。
MD5是单向加密,不存在解密。
是一个公开的算法,一般用于文件的数字签名
想解密的话应该只能做一个库去记录下比如某个字符经过MD5加密后的值。
记得好像有专门查询MD5加密前值的网站。
你所说的四个加密函数应该是delphi对MD5加密的再次封装,理论上一样的