热心网友
在SQl2005下自带的函数hashbytes() ,此函数是微软在SQL SERVER 2005中提供的,可以用来计算一个字符串的 MD5 和 SHA1 值,使用方法如下:
--获取123456的MD5加密串
select hashbytes('MD5', '123456') ;
--获取123456的SHA1加密串
select hashbytes('SHA1', '123456') ;有了这个函数可以在sqlserver中为字符串进行加密,但是hashbytes() 函数的返回结果是 varbinary类型,(以 0x 开头 16 进制形式的二进制数据)通常情况下,我们需要的都是字符串型的数据,很多人首先想到的可能就是用 CAST 或 Convert 函数将varbinary 转换为 varchar,但这样转换后的结果会是乱码,正确转换 varbinary 可变长度二进制型数据到 16 进制字符串应该使用系统内置函数 sys.fn_varbintohexstr()(只在sqlserver2005下有),如下所示:select sys.fn_varbintohexstr(hashbytes('MD5', '123456'))
然后就可以截取需要的部分select lower(right(sys.fn_varbintohexstr(hashbytes('MD5','123456')),32))为md5加密串。
2. SQL数据库被加密了怎么办
用”合力天下数据库加密软件“加密的sqL数据库在本机是可以正常运行的,远程非法下载或传到网上是打不开的,如果需要带出公司,可以找公司管理员解密后带出
3. sql怎么自动备份并将备份文件加密
SQL SERVER 定时自动备份,并将备份文件加密压缩(2008-11-12 11:21:48)标签:it 分类:操作系统@数据库
最近因为公司要升级HR系统,我被安排管理这个项目,公司为了安全起见和我签署了保密协议,按了手印责任就大了,所以要想办法加强系统、应用、数据库的安全,系统无法控制,应用的安全还不错,所以我就着手做数据库的安全,数据库用户及密码都控制了,现在需要对自动备份的数据文件进行加密,以下就是我使用到的工具、方法和代码共享出来,供大家参考。
第一个步骤:就是让SQL Server自动备份数据库,通过DB维护计划完成,这个我就不详细说了。
第二个步骤:就是加密并压缩备份的数据库文件。为了在备份后,马上进行压缩,最方便的就是直接使用SQL命令执行压缩,由于WinRAR可以通过命令行调用,所以我们可以使用SQL Server中的xp_cmdshell命令来执行压缩指令,同时通过其中的一些参数指定压缩密码,这样加密压缩就实现了。(为了实现此功能,服务器上要安装WinRAR)
第三步骤:修改维护计划里调用的SQL,在命令中输入执行备份、加密、删除备份的文件的存储过程。
实施步骤和代码:
1、在备份的数据库中建立存储过程
CREATE procere hrp_backup
--alter procere hrp_backup
WITH ENCRYPTION
AS
declare
@prefix nvarchar(100),
@datefile nvarchar(100),
@bakfile nvarchar(100),
@rarfile nvarchar(100),
@delcmd nvarchar(100),
@rarcmd nvarchar(150)
set @prefix='D:/Database_bak/' --备份文件夹
set @datefile='HRM8_DBBAK_'+cast(Year(GetDate()) as varchar(4))+cast(Month(GetDate()) as varchar(2))+cast(Day(GetDate()) as varchar(2))
set @bakfile=@prefix+@datefile+'.bak'
set @rarfile=@prefix+''+@datefile+'.rar'
BACKUP DataBASE HRM8 TO DISK = @bakfile WITH INIT , NOUNLOAD , NAME = N'HR数据备份', NOSKIP , STATS = 10, NOFORMAT
--set @delcmd = 'del '+@prefix+ 'RAR/*.rar' --先清空RAR备份文件夹
set @rarcmd ='C:/Progra~1/WinRAR/WinRAR.exe a -ppassword -df -ep1 '+@rarfile+' '+@bakfile
-- -df压缩后删除文件 -ep1 从名称中排除基本目录
--将password改为您要设置的密码,进行加密压缩
--exec master..xp_cmdshell @delcmd
exec master..xp_cmdshell @rarcmd
Go
2、新建维护计划,在Transact-SQL命令中执行以上的存储过程。
exec hrp_backup
go
验证调试成功。
4. 我有一个sql文件,被加密了,他在server文件夹下,怎么打开
可用于加密SQL存储过程或者触发器
(这是SQLServer本身提供的,也就是说这是微软的加密算法)
使用WITHENCRYPTION选项
WITHENCRYPTION子句对用户隐藏存储过程的文本。下例创建加密过程,使用sp_helptext系统存储过程获取关于加密过程的信息,然后尝试直接从syscomments表中获取关于该过程的信息。
IFEXISTS(SelectnameFROMsysobjects
Wherename='encrypt_this'ANDtype='P')
DropPROCEDUREencrypt_this
GO
USEpubs
GO
CreatePROCEDUREencrypt_this
WITHENCRYPTION
AS
Select*
FROMauthors
GO
EXECsp_helptextencrypt_this
下面是结果集:
Theobject'scommentshavebeenencrypted.
接下来,选择加密存储过程内容的标识号和文本。
Selectc.id,c.text
ONc.id=o.id
Whereo.name='encrypt_this'
下面是结果集:
说明text列的输出显示在单独一行中。执行时,该信息将与id列信息出现在同一行中。
idtext
----------------------------------------------------------------------
1413580074?????????????????????????????????e??????????????????????????????????????????????????????????????????????????
(1row(s)affected)
备注:
createprocname
withencryption
as
begin
--语句
end
CreateTRIGGERtrigger_name
ON{table|view}
WITHENCRYPTION
FORUpdate
AS
begin
--语句
end
5. 教你怎样实现SQL密文加密,不可反编译
use Tempdbgoifobject_ID('fn_ACITEncryption')isnotnull dropfunction fn_ fn_ACITEncryption( @Str nvarchar( 4000),--加密的字符串 @Flag bit= 1,--1、加密0、解密 @Key nvarchar( 50)--密文)returnsnvarchar( 4000)--这里可转换成二进制withEncryptionasbeginDeclare @LenStr int, @i int, @Str2 nvarchar( 4000), @Split nvarchar( 2), @LenKey intselect @Str= @Str+'A', @LenStr=len( @Str), @i= 1, @Str2='', @LenKey=Len( @Key+'A')- 1while @i< @LenStr select @Split=substring( @Str, @i, 1), @Split=nchar((unicode( @Split)+case @Flag when 1 thenunicode(substring( @Key+'A', @i% @LenKey+ 1, 1))- 1 when 0 then 65535-unicode(substring( @Key+'A', @i% @LenKey+ 1, 1)) else 0 end)% 65535+cast( @Flag asint)), @Str2= @Str2+ @Split, @i= @i+ 1return @Str2 endgoselect dbo. fn_ACITEncryption( N'Roy', 1,'123')as加密后字符串 /*加密后字符串------------------------------(1 个资料列受到影响) */select dbo. fn_ACITEncryption( N, 0,'123')as解密后字符串/*解密后字符串--------------------------Roy (1 个资料列受到影响)*/
6. SQL2000把存储过程加密了,怎么解开
SQL2000把存储过程加密了,怎么解开
可以导入,太大,就不要用记事本或者其它编辑器打开了,
查询分析器--连接数据库--文件--打开--.sql文件--F5执行
不过你把数据导出为SQL文件,而且200多M,真的是。
为何不压缩后,直接拷库文件,或者直接备份导出呢。
7. sql server里面的内容加密了,用什么方法可以解密
应该是程序写入数据库前加密的,要解密的话,先要查一下是用什么方式加密的,有没有解决程序。
如md5是没有解密程序的。
8. SQL数据文件怎么加密
首先要说明不能限制 “谁”,只能限制部分人
其次是加密数据肯定要降低效率
一般情况你数据表中数据不用全部加密,某些关键字段加密就行了
但是你这个只能用可逆转加密,而且加密后 查询检索会麻烦些
不能直接复制,使用 Blob 字段就类型就行了
要加密简单点用 Base64编码好了,也不能直接复制,肉眼看不出来,拿走也不能直接用
其它的加密方式 效果好些,但效率就低了。