好奇怪的加密?不知怎么回事,高手请出刀。(100分)

  • 主题发起人 主题发起人 slcgd
  • 开始时间 开始时间
S

slcgd

Unregistered / Unconfirmed
GUEST, unregistred user!
我用如下加密代码加密access数据库的字符串型字段,发现加密后有的字符串变短了。
有的又不变,百思不得其解。
function mycipher(const s:string;flag:byte):string
var
i:integer;
key:byte;
begin
case flag of
0
begin
setlength(result,length(s));
randomize;
random($ff);
for i:=1 to length(s) do
result:=char(byte(s) xor i xor key)
result[lenth(s)+1]:=char(key)
end;
1
begin
setlength(result,length(s)-1);
key:=byte(s[length(s)]);
for i:=1 to length(s)-1 do
result:=char(byte(s) xor i xor key)
end;
end
 
因为此种加密方法将字符串可能加密为一种不可见字符,所以会出现字符变短了,但是它所占的空间并没变。
 
那怎么结觉呢?
请指教
 
如果只是为了加密就没有必要,将加密字符都显示出来,只需要将加密后的字符串保存到一
个文件中,将此文件发给客户就可以了。
 
会出现一些不可视的字符所以看上去变短了,但要注意往数据库里存的时候看前面和后面
是不是空格,或者非可视字符,小心读出来的时候少了东西
介意在前面和最后一位加上一个标志符
 
后来我家了标志位,还是有的字符串变短了。
好苦呀!
 
各位
谁有C++Builder的字符串加密例子,急用,DELPHI的不用了,因为已经有DELPHI的了,但怎也
转不到C++Builder,如果谁有C++Builder的请寄:drroc@21cn.com
或贴:http://www.delphibbs.com/delphibbs/dispq.asp?lid=759801
即发分
 
后退
顶部