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

加密|数据|数据库

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

 

(完) 

时间: 2024-11-01 17:40:58

如何实现对数据库单个字段进行加密的相关文章

mysql数据库中字段都是被加密了怎么查看

问题描述 mysql数据库中字段都是被加密了怎么查看 唉 新手实习生.. 有个项目数据库中的很多字段都是是sfsaf-dfasfdadfasf-fasdfas类似这种,不知道该怎么查询数据内容? 解决方案 这你要问你boss,是用什么加密的

MySQL数据库将多条记录的单个字段合并成一条记录

MySQL数据库将多条记录的单个字段合并成一条记录 MySQL数据库将多条记录的单个字段合并成一条记录的操作是本文 我们主要要介绍的内容,接下来就让我们一起来了解一下这部分内容吧. 测试用表结构:  www.bitsCN.com CREATE TABLE IF NOT EXISTS `tet` ( `id` int(11) NOT NULL, `name` varchar(255) NOT NULL, `url` varchar(255) NOT NULL ) ENGINE=InnoDB DEF

session-aspx单点登录 怎么判断不正常退出,将SQL数据库一字段改成true

问题描述 aspx单点登录 怎么判断不正常退出,将SQL数据库一字段改成true 我做了一个系统,在同一时间,一个帐号只能一个登录,我把数据库帐号表加了一个列,用来判断是否登录,如果没登录,为true,如果登录后,就改为false,然后在登陆界面判断这个列是true还是false,如果是false就弹框,不能进去. 只有用户自己安全退出,才把false改成true 我的帐号使用session传值的. 现在有个麻烦,就是如果直接关掉游览器,那这个列的字段不会自己变成true,怎么办?还有直接断电和

asp在线实现修改access数据库的字段类型

数据|数据库|在线|access|字段类型 阿里西西(alixixi.com)在做一个客户项目的时候,程序已经交付并上传到客户的网通空间,但我们的开发团队使用的是电信线路,进行几十M大小的数据传输是非常的慢. 在一个调整中,因为字段设计得太短,需要修改数据库的字段类型,但数据库非常大,如果下载的话,估计半天才能下载完,修改完成还在再上传... 于是,决定通过在线修改AC库的字段,查了些资料,写出了以下代码,轻松实现了把原来文本类型的字段改成了备注型,一切问题解决! 以下代码可以提供给大家参考,把

替换MSSQL数据库text字段恶意脚本

删除MSSQL数据库text字段的替换处理示例--全表替换,看到有人提问,所以整理了一个好久以前的处理方法,以供大家参考 方法很简单:text字段不能使用Replace,所以使用patindex -select * from Product where P_Intro like '%<script src="http://my.stsw518.cn/a002/1.js" src="http://my.stsw518.cn/a002/1.js"></

通过JDBC操纵Oracle数据库LOB字段的几种情况分析

oracle|数据|数据库 通过JDBC操纵Oracle数据库LOB字段的几种情况分析纵横软件制作中心 雨亦奇2003-6-10 15:14:19在Oracle中,LOB(Large Object,大型对象)类型的字段现在用得越来越多了.因为这种类型的字段,容量大(最多能容纳4GB的数据),且一个表中可以有多个这种类型的字段,很灵活,适用于数据量非常大的业务领域(如图象.档案等).而LONG.LONG RAW等类型的字段,虽然存储容量也不小(可达2GB),但由于一个表中只能有一个这样类型的字段的

asp如何获取access数据库的字段说明

asp如何获取access数据库的字段说明代码如下:<html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>提取access字段的说明信息</title></head><%dim table                  table = trim(request(&qu

linq-asp.net中如何通过LINQ访问数据库某字段相应元组的的另一个字段

问题描述 asp.net中如何通过LINQ访问数据库某字段相应元组的的另一个字段 asp.net中如何通过LINQ访问数据库某字段相应元组的的另一个字段,比如有一个数据库,里面有学号,姓名,还有密码. 如果我知道一个学号,但是我想知道这个学号对应的姓名时,我应该怎么做?还有如何把这个匹配的姓名赋值到一个Lable上.求大神指点.做作业用的 解决方案 (1) var query = db.table.First(x => x.学号 == 1).姓名; (2) label1.Text = query

vb6 sql instr-vb6环境下,无法使用instr、charindex查询数据库指定字段中特定字符的位置。

问题描述 vb6环境下,无法使用instr.charindex查询数据库指定字段中特定字符的位置. 创建视图,需要查询数据库指定字段特定字符,代码以下: quetn = "create view que_ta AS select max(que_info.test_id) as test_id,sum(case when instr(1, que_category.cate_name, '选择题')>0 then 1 end) as 选择题," & _ "sum