熱點推薦:
您现在的位置: 電腦知識網 >> 操作系統 >> Windows系統管理 >> 正文

如何實現對數據庫單個字段進行加密

2013-11-11 21:45:09  來源: Windows系統管理 

  create view v_rand
  as
  select c=unicode(cast(round(rand()*) as tinyint))
  go
  create function f_jmstr(@str varchar()@type bit)returns varchar()
  /*
  
  *參數說明
  *str:要加密的字符串或已經加密後的字符
  *type:操作類型加密解密
  *返回值說明
  *當操作類型為加密時(type):返回為加密後的str即存放於數據庫中的字符串
  *當操作類型為解密時(type):返回為實際字符串即加密字符串解密後的原來字符串
  */
  As
  begin
    declare @re varchar()返回值
    declare @c int加密字符
    declare @i int
  /*
  *加密方法為原字符異或一個隨機ASCII字符
  */
    if @type=加密
    begin
    select @c=c@re=@i=len(@str) from v_rand
    while @i>
    select @re=nchar(unicode(substring(@str@i))^@c^@i)+@re
                     @i=@i
    set @re=@re+nchar(@c)
    end
    else解密
    begin
    select @i=len(@str)@c=unicode(substring(@str@i+))@re=
    while @i>
    select @re=nchar(unicode(substring(@str@i))^@c^@i)+@re @i=@i
    end
    return(@re)
  end
  go
  
  測試
  declare @tempstr varchar()
  set @tempstr=    aA
  select dbof_jmstr(dbof_jmstr(@tempstr))
  輸出結果
      aA
  
  (完)
From:http://tw.wingwit.com/Article/os/xtgl/201311/9139.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.