请各位大虾帮帮忙啊!中文如何做密码?

解决方案 »

  1.   

    做什么密码,access可以直接用,其他没试过
      

  2.   

    procedure TForm1.Decryption(var adata: string);//解密
    var
      i:longint;
    begin
      for i := 1 to length(adata) do begin
        adata[i]:=Char(Ord(adata[i]) shr 2);
      end;
    end;procedure TForm1.Encryption(var adata: string);//加密
    var
      i:longint;
    begin
      for i := 1  to length(adata) do begin
        adata[i]:=Char(Ord(adata[i]) shl 2);
      end;
    end;这是我的加密、解密函数。
    就是用中文加密后解出来和原来不一样这是为什么?
      

  3.   

     这你要判断asicc码值了,如果大于127,就要读两位长度了
      

  4.   


     //判断是否汉字:   
     while   j<=   strlen(pchar(字串))   do   
      begin   
        if   ord(字串[j])>128   then   
      begin   
        // 是汉字   
        inc(j,2);   
      end   
      else   
      inc(j,1);   
      end;
      

  5.   

    shr,shl是不是移位?移位会溢出的对不?循环移位是不是就不溢出了.再看char,ord的定义域和值域,不要超出了
      

  6.   

    //加密部分的改造 ,所有字符都处理
    procedure TForm1.Encryption(var adata: string);//加密 
    var 
      i:longint; 
      ch1:char; 
    begin 
      for i := 1  to length(adata) do begin 
        ch1:=adata[i];
        asm 
           {
           mov ah,ch1
           rol ah,2      //循环左移2位,不会丢失数据,如果是解密,则用ROR ah,2 替换
           mov ch1,ah
           }
        adata[i]:=ch1; 
      end; 
    end;