动网论坛,站长建站首选,国内使用量最多的论坛软件 动网论坛官方技术讨论区 站长工具 申请属于您自己的免费论坛
首页 | 新闻资讯 | 网站运营 | 网络编程 | 数据库 | 服务器 | 网页设计 | 图像媒体 | 网络应用 | 搜索优化 | 资源下载 | 动网主机 | DVBOX
    本站内  互联网 ASP论坛  ASP.Net论坛  PHP论坛
   数据库 → 阅读文章

 如何实现对数据库单个字段进行加密

作者:无从考证 来源:转载 
阅读 数 664 人次 , 2006-2-15 17:52:00 

create view v_rand
as
select c=unicode(cast(round(rand()*255,0) as tinyint))
go
 
create function f_jmstr(@str varchar(8000),@type bit)returns varchar(8000)
/*
*参数说明
*str:要加密的字符串或已经加密后的字符
*type:操作类型--0加密--解密
*返回值说明
*当操作类型为加密时(type--0):返回为加密后的str,即存放于数据库中的字符串
*当操作类型为解密时(type--1):返回为实际字符串,即加密字符串解密后的原来字符串
*/
As
begin
         declare @re varchar(8000)--返回值
         declare @c int--加密字符
         declare @i int
/*
*加密方法为原字符异或一个随机ASCII字符
*/
    if @type=0--加密
    begin
                   select @c=c,@re=’’,@i=len(@str) from v_rand
                   while @i>0
                       select @re=nchar(unicode(substring(@str,@i,1))^@c^@i)+@re
                                     ,@i=@i-1
                   set @re=@re+nchar(@c)
    end
    else--解密
    begin
                   select @i=len(@str)-1,@c=unicode(substring(@str,@i+1,1)),@re=’’
                   while @i>0
                            select @re=nchar(unicode(substring(@str,@i,1))^@c^@i)+@re ,@i=@i-1
         end
         return(@re)
end
go
 
--测试
declare @tempstr varchar(20)
set @tempstr=’  1 2   3aA’
select dbo.f_jmstr(dbo.f_jmstr(@tempstr,0),1)
输出结果
  1 2   3aA   
 本文Tags数据库  md5  加密  
 收藏本文  打印本文  论坛讨论  关闭窗口
· 上一篇:使用XML技术实现OWC对数据库的展示
· 下一篇:数据库设计经验谈
· What's new in Microsoft SQL Server 2000(八)
· 将Access移植到SQL Server
· 循序渐进学习Power Builder 6.0(3-1-2)
· SQL Server数据库开发的二十一条军规
· 用表单来提交sql(转)1


关于本站 | 联系我们 | 业务合作 | 客户案例 | 诚聘英才 | 广告合作 | 收藏本站
海口动网先锋网络科技有限公司版权所有
Copyright © 2000 - 2006 Cndw.Com
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077