我想实现一个功能,假如有字符串A显示是“1234a”,我想把这个字符串转换成乱码,或不知道的字符串B,假如是“ab21232”,但是我读取这个B字符串时,转换成A字符串“1234a”。其实这个就是一个简单的密码,比如我录入密码的字符串是“123abc”,当我存入表的某一个字段时,当然是不能以“123abc”,转换成其它看不懂的字符,假如是“xxserda”,但是读取这个看不懂的字符时,显示原来的密码字符串“123abc”,请问用sql语句如何来写的?或者有没有现成的sql代码

解决方案 »

  1.   

    http://blog.csdn.net/fredrickhu/archive/2009/09/20/4574249.aspx
      

  2.   


    create function Decrypt(@Str varchar(20), @Seed int)
    returns varchar(20)
    as
    begin
    declare @p int, @b varchar(20)
    select @b='',@p=len(@Str)-1
    while @p<>0
    begin
      set @p=len(@Str)-1
      set @b=@b+char(ascii(left(@Str,1))^6)
      set @Str=substring(@Str,2,@p)  
    end
    return(@b)
    end--加密
    select dbo.Decrypt('1234a',5)
    --结果
    --------------------
    7452g(1 行受影响)--解密
    select dbo.Decrypt('7452g',5)
    --------------------
    1234a(1 行受影响)
      

  3.   


    上面函数写错了...create function Decrypt(@Str varchar(20), @Seed int)
    returns varchar(20)
    as
    begin
    declare @p int, @b varchar(20)
    select @b='',@p=len(@Str)-1
    while @p<>0
    begin
      set @p=len(@Str)-1
      set @b=@b+char(ascii(left(@Str,1))^@Seed)
      set @Str=substring(@Str,2,@p)  
    end
    return(@b)
    end