网上查了不少加密和解密的方法,能够简单地进行加密解密的基本上都是对ascii字符进行的,如果有汉字的话运行就会出错了,怎样才能对有汉字的字符串进行加密和解密呢?谢谢

解决方案 »

  1.   

    我有一个加密任何字符的函数,不过太大,若需要可以发给你PAS文件。
      

  2.   

    http://community.csdn.net/Expert/topic/3557/3557236.xml?temp=.1817285查一查以前我提交的FAQ,里面都有。
      

  3.   

    啊,你只要简单的加密啊?我给的这个是DES支持中文加密的。
      

  4.   

    这个简单。即加密也解密
    function Crypt_DeCrypt(text:string):string;var longkey,key:string;
        i:integer;
        ch:char;
    begin
      key:='85670541';
      for i := 0 to (length(text) div length(key)) do
          longkey := longkey + key;  for i := 1 to length(text) do begin
          ch:= chr((ord(text[i]) XOR ord(longkey[i]))); // XOR algorithm
          result:= result + ch;
      end;
    end;
      

  5.   

    定义加解密字符串为WideString类型就可以了,再分别取高低8位进行加解密,算法通用.
      

  6.   

    汉字变成两个Char来加密,一样的嘛!
      

  7.   

    Function EncryptDecrypt(S : String;K:String):String;
    Var
      I,Q:Integer;
      O:String[255];
    begin
      Q := 1;
      O := '';
      For I := 1 to Length(S) Do
        begin
          O := O + Chr(Ord(S[I]) Xor Ord(K[Q]));
          Inc(Q); If Q > Length(K) Then Q := 1;
        end;
      EncryptDecrypt := O;
    end;procedure TForm1.Button3Click(Sender: TObject);
    begin
      Edit2.Text:=EncryptDecrypt(Edit1.Text,'111');
    end;procedure TForm1.Button4Click(Sender: TObject);
    begin
      Edit3.Text:=EncryptDecrypt(Edit2.Text,'111');
    end;用这个吧,又能加密又能解密的。
      

  8.   

    顺便问一下楼上,用你的方法(就是用Char xor Char),有时候会有控制字符出现,怎么避免呢?
      

  9.   

    你用DES 加密好了,都可以的,太长的话先压缩再加密。先加密再压缩没什么效果的
    MD5加密或者HASH都可以