您的位置:首页 > 其它

关于加密解密的一个问题

2008-10-14 16:32 375 查看
关于加密解密的一个问题 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiBase/html/delphi_20061218103947132.html

算法想实现这么个功能
加密:
根据10位数的数字编号如"1000000001",加上数字Key后,产生一串8位数的数字编号

解密:
解密就是把8位数数字编号还原成10的

请各位高手帮忙,分不够可以再给

大家帮帮忙啊

程序自己写,给你说方法,
加密:数字编号->转成16进制数字编号->加数字key->不够8位在前面补随机数->第一位的16进制高8位是描述你加密的有效长度.
解密,反之

UP

算法还是自己想个比较好,要不加密就没什么意义拉

最简单就是通过异或进行加解密,举个例子吧,密钥K长度为l,欲加密明文a长度为L,
将明文分段截取为a1+a2+...+an;长度均为l,不足的可高位补0,然后取密文Z=(a1 xor K)+(a2 xor K)+...+(an xor K),
解密的过程与加密相同,将密文分段与密钥异或再拼接就可得到明文,另外,如果想提升一些安全性,则可对每段明文进行多次异或,每异或一次后,将结果循环移位.

说得详细一些,最好帖段代码啊,新手啊

function(a,key:string):string;
var
temp:string;
i,j,blocknum,alen,keylen: integer
begin
temp:=a;
alen:=length(temp);
keylen:=length(key);
whlie (alen mod keylen)<>0 do
begin
temp:=temp+$0;
inc(alen);
end;
setlength(result,alen);
blocknum:=alen div keylen
for i:=0 to blocknum-1 do
for j:=1 to keylen do
result[i*keylen+j]:=char(byte(a[i*keylen+j]) xor byte(key[j]);
end;

好象不行啊
楼上的不支持数字吧

没人回答啊,郁闷啊

我只是写个例程的说,你只要能找到一个算法就可以了,加解密都是基于数学算法的,只要找到适当的算法,再写成程序就可以了.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: