我希望对自己的数据库中的数据加密,我还可以访问这些数据,当然是程序中解密之后再访问,用户在数据库中部能看到数据的明码,请问怎莫作。谢谢

解决方案 »

  1.   

    encrypt
    dencrypt
    你查查
      

  2.   

    你用的啥数据库要是sqlserver的话对表加密很麻烦,但可以把所有对SQLSERVER的操作都用存储过程来做,因存储过程是可以加密的
      

  3.   

    1。物理表中所有数据用文本类型
    2。定义一个加密格式头,如“##CODED##”表示后跟加密数据
    3。对你的真实数据进行加密,并编码为单字节文本
    4。在程序中按不同数据类型进行解密
      

  4.   

    typeTDynByteArray = array of byte;constSeedA = 5678; /// 常量,你可以修改SeedB = 5432; /// 常量,你可以修改/// 对数组加密function Crypt(const s: TDynByteArray; Key: Word; const bEncrypt: boolean = true): TDynByteArray; overload;vari : integer;beginSetLength(Result, Length(s));for i := Low(s) to High(s) dobeginResult[i] := s[i] xor (key shr 8);if bEncrypt thenKey := (Result[i] + key) * SeedA + SeedBelseKey := (s[i] + Key) * SeedA + SeedB;end;end;/// 字符串function Crypt(const s: string; Key: Word; const bEncrypt: boolean = True): string; overload;vari : integer;ps, pr : ^byte;beginSetLength(Result, Length(s));ps := @s[1];pr := @Result[1];for i := 1 to length(s) dobeginpr^ := ps^ xor (Key shr 8);if bEncrypt thenKey := (pr^ + Key) * SeedA + SeedBelseKey := (ps^ + Key) * SeedA + SeedB;pr := pointer(integer(pr) + 1);ps := pointer(integer(ps) + 1);endend;/// 也可以对记录进行加密,只要把TResultData改成你的记录类型即可!!!!!!function Crypt(const s: TResultData; Key: Word; const bEncrypt: boolean = True): TResultData; overload;vari : integer;ps, pr : ^byte;beginps := @s;pr := @Result;for i := 1 to SizeOf(s) dobeginpr^ := ps^ xor (Key shr 8);if bEncrypt thenKey := (pr^ + Key) * SeedA + SeedBelseKey := (ps^ + Key) * SeedA + SeedB;pr := pointer(integer(pr) + 1);ps := pointer(integer(ps) + 1);end;end;***************************function cryptstr(const s:string; stype: dword):string;vari: integer;fkey: integer;beginresult:='';case stype of0:beginrandomize;fkey := random($ff);for i:=1 to length(s) doresult := result+chr( ord(s[i]) xor i xor fkey);result := result + char(fkey);end;1:beginfkey := ord(s[length(s)]);for i:=1 to length(s) - 1 doresult := result+chr( ord(s[i]) xor i xor fkey);end;end;
    ---以上资料来自《超级猛料》
      

  5.   

    直接加密和解密算法{*******************************************************}
    {                                                       }
    {  Decrypt                                              }
    {                                                       }
    {  bitwise compare of each characters XOR 27            }
    {                                                       }
    {  Return string which after bitwise compare            }
    {                                                       }
    {*******************************************************}
    function Decrypt(s: string; Key: Integer = 27): string;
    var
      i: Integer;
    begin
      Result := s;
      for i := 1 to Length(s) do
        Result[i] := Chr(Ord(s[i]) xor Key);
    end;{*******************************************************}
    {                                                       }
    {  Encrypt                                              }
    {                                                       }
    {  Call again Decrypt to back to origin                 }
    {                                                       }
    {  Return string which after bitwise compare            }
    {                                                       }
    {*******************************************************}
    function Encrypt(s: string; Key : Integer =27): string;
    begin
      Result := Decrypt(s, Key);
    end;
    以上资料来自我的软件