频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

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

来源:ddcode.com收集 作者: 出处:巧巧读书 2006-03-26 进入讨论组

  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专题:http://www.qqread.com/pb/s102952700.html 更多文章 更多内容请看加密与解密技术常用软件加密宝典数据库专栏专题,或进入讨论组讨论。
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章