我的分不够,救命啊?

xsmuhtar 2008-11-17 11:54:21
我用了这些代码加密和解密字符串的时候,英文字符串可以正常的加密和解密,但是加密和解密汉字的时候不能正常的
别如说:加密“学习”的时候,加密结果:D469,但是解密结果是:f`;

用的加密和解密函数如下:
const

XorKey:array[0..7] of Byte=($B2,$09,$AA,$55,$93,$6D,$84,$47);


function Enc(Str:String):String;//字符加密函數 這是用的一個異或加密
var
i,j:Integer;
begin
Result:='';
j:=0;
for i:=1 to Length(Str) do
begin
Result:=Result+IntToHex(Byte(Str[i]) xor XorKey[j],2);
j:=(j+1) mod 8;
end;
end;

function Dec(Str:String):String;//字符解密函數
var
i,j:Integer;
begin
Result:='';
j:=0;
for i:=1 to Length(Str) div 2 do
begin
Result:=Result+Char(StrToInt('$'+Copy(Str,i*2-1,2)) xor XorKey[j]);
j:=(j+1) mod 8;
end;
end;



但是一个问题:我在这些代码在delphi2006 for win32中可以正常使用的,但是在Delphi2009上不能正常使用的,

这个问题如何解决?
哥儿们请指导一下!
...全文
69 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xsmuhtar 2008-11-17
  • 打赏
  • 举报
回复
没有这样的问题,
就是win32和delphi2009解密结果不一致,在delphi2009上结果不对的问题
qhg06631006 2008-11-17
  • 打赏
  • 举报
回复
IntToHex
StrToInt
是不是加密跟解密时数据类型转换不一样的问题啊?
xsmuhtar 2008-11-17
  • 打赏
  • 举报
回复
谢谢你的回复

我是新手,不太熟悉密,能不能详细一点讲啊?
如何Base64加密?
无条件为你 2008-11-17
  • 打赏
  • 举报
回复
可以先将字符串(不管有没有汉字)先进行Base64加密,然后再用你的方法加密。

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧