发布网友 发布时间:2022-04-22 23:36
共4个回答
热心网友 时间:2022-05-01 14:23
对sql中的数据进行加密,有5种方法,
1、利用CONVERT改变编码方式:
利用该函数把文字或数据转换成VARBINARY。但该方式不具备保护数据的能力,仅避免浏览数据的过程中能直接看到敏感数据的作用。
2、利用对称密钥:
搭配EncryptByKey进行数据加密。使用DecryptByKey函数进行解密。这种方式比较适合大数据量。因为对称密钥的过程耗用资源较少。
3、利用非对称密钥:
搭配EncryptByAsymKey进行数据加密。使用DecryptByAsymKey函数进行解密。用于更高安全级别的加解密数据。因为耗用资源叫多。
4、利用凭证的方式:
搭配EncryptByCert进行加密和DecryptByCert函数进行解密。比较类似非对称密钥。
5、利用密码短语方式:
搭配EncryptBypassPhrase进行加密,使用DecryptByPassPhrase函数来解密。可以使用有意义的短语或其他数据行,当成加密、解密的关键字,比较适合一般的数据加解密。
扩展资料:
sql数据库的组成:
在正式学习SQL语言之前,首先让我们对SQL语言有一个基本认识,介绍一下SQL语言的组成:
1、一个SQL数据库是表(Table)的集合,它由一个或多个SQL模式定义。
2、一个SQL表由行集构成,一行是列的序列(集合),每列与行对应一个数据项。
3、一个表或者是一个基本表或者是一个视图。基本表是实际存储在数据库的表,而视图是由若干基本表或其他视图构成的表的定义。
4、一个基本表可以跨一个或多个存储文件,一个存储文件也可存放一个或多个基本表。每个存储文件与外部存储上一个物理文件对应。
5、用户可以用SQL语句对视图和基本表进行查询等操作。在用户角度来看,视图和基本表是一样的,没有区别,都是关系(表格)。
6、SQL用户可以是应用程序,也可以是终端用户。SQL语句可嵌入在宿主语言的程序中使用,宿主语言有FORTRAN,COBOL,PASCAL,PL/I,C和Ada语言等。
SQL用户也能作为的用户接口,供交互环境下的终端用户使用。
参考资料来源:百度百科-SQL数据库
热心网友 时间:2022-05-01 15:41
在Sql Server 中经常要对存在表中数据加密,比如密码字段,我们可以利用Sql 中自带的加密函数pwdencrypt()来进行加密,加密之后无法解密码,需要使用pwdcompare('原文','密码')对比,如果返回结果为1,表示密码相符,如果为0,表示不符
例如:
declare @pwd varchar(50)
declare @en_pwd varbinary(256)
select @pwd='abc'
select @en_pwd=pwdencrypt(@pwd)
select pwdcompare(@pwd,@en_pwd)
返回的结果为1,表示相符
这里还有一个小的细节要注意一下,pwdcompare()其实还有一个参数:
pwdcompare(@pwd,@en_pwd,1|0)
最后一个参数取1的时候,密码区分大小写的,不过默认是取0的,也就是加密之后,不区分大小写。
偶然间发现这样一篇贴子,说pwdencrypt()有漏洞,使用使用的时候还是小心为好。
描述:
Microsoft SQL Server 2000缓冲区溢出漏洞允许获取系统控制权
详细:
Microsoft SQL Server 2000有一个内置的散列函数,名为pwdencrypt()。
这个函数存在一个缓冲/堆栈溢出漏洞,允许攻击者发动拒绝服务攻击,使SQL Server崩溃,通过合适的方式构造shellcode,可能引起攻击者能以系统权限执行任何指令。
下面的例子通过超长字符串(353个字符A)将使SQL Server2000崩溃:
Select pwdencrypt(REPLICATE('A',353))
有的系统可能需要更长的字符串才能达到攻击效果,但1000个字符无论如何都足够让SQL Server崩溃了。
攻击方法:
下面的例子通过超长字符串(353个字符A)将使SQL Server2000崩溃:
Select pwdencrypt(REPLICATE('A',353))
有的系统可能需要更长的字符串才能达到攻击效果,但1000个字符无论如何都足够让SQL Server崩溃了。
尚未发现有效的,能导致非法获取系统控制权的shellcode代码出现。
热心网友 时间:2022-05-01 17:16
可以弄个 MD5 加密的 写数据时进行加密 读取时在解密
热心网友 时间:2022-05-01 19:07
楼上说MD5能解密 搞笑哦