需要一个加密算法,要求不换密钥的前提下每次加密后密文都不一样,
对称或非对称均可,谢谢.
对称或非对称均可,谢谢.
解决方案 »
- 在线等!!!急,大虾帮忙啊
- 把Tfield 放进 Tobject中 只能保存最后一条记录的值?? 大家给我看看这段代码有什么问题啊,我为什么取不到我要的值
- 菜鸟请教:如何在IdTCPServer的Execute事件中向全局变量的memo1中写信息而不会导致客户端因为共享资源冲突而出错?
- 怎样将数据库的内容导出成文本!
- 时间段的累加,高分考验你
- 求好的方法
- delphi for linux
- 听说delphi很容易上手,是吗?
- 我要做一个具有容错机志的中介件,用于Socket处理,具体如一台应用服务器有问题,自动跳到另一台应用服务器,并要维持消息状态?
- 如何开发基于mts的多层数据库系统---老板要求开发,我没作过
- 有人用DELPHI来写过可以让JAVA来调用的dll文件吗?
- 我想做一个软件来监控并操作另外一个软件的某个功能,如何入手呢?
var
idx :integer;
KeyLen :Integer;
KeyPos :Integer;
offset :Integer;
dest :string;
SrcPos :Integer;
SrcAsc :Integer;
TmpSrcAsc :Integer;
Range :Integer;begin
KeyLen:=Length(Key);
if KeyLen = 0 then key:='Tom Lee';
KeyPos:=0;
SrcPos:=0;
SrcAsc:=0;
Range:=256;
if Encrypt then
begin
Randomize;
offset:=Random(Range);
dest:=format('%1.2x',[offset]);
for SrcPos := 1 to Length(Src) do
begin
SrcAsc:=(Ord(Src[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;
end
else
begin
offset:=StrToInt('$'+ copy(src,1,2));
SrcPos:=3;
repeat
SrcAsc:=StrToInt('$'+ copy(src,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(Src);
end;
Result:=Dest;
end;procedure TForm1.BitBtn3Click(Sender: TObject);
var
s : string;
begin
s := jjm('wudi','wudi',true);
showmessage(s);
s := jjm(s,'wudi',false);
ShowMessage(s);
end;