如何对数据库进行加密和解密

如何对数据库进行加密和解密,第1张

数据库账号密码加密详解及实例

数据库中经常有对数据库账号密码的加密,但是碰到一个问题,在使用UserService对密码进行加密的时候,spring security 也是需要进行同步配置的,因为spring security 中验证的加密方式是单独配置的。如下:

<authentication-manager>

<authentication-provider user-service-ref="userDetailService">

<password-encoder ref="passwordEncoder" />

</authentication-provider>

</authentication-manager>

<beans:bean class="comsapphiresecurityMyPasswordEncoder" id="passwordEncoder">

<beans:constructor-arg value="md5"></beans:constructor-arg>

</beans:bean>

如上述配置文件所示,passwordEncoder才是在spring security对账号加密校验的地方。

spring security在拦截之后,会首先对用户进行查找,通过自己定义的userDetailService来找到对应的用户,然后由框架进行密码的匹配验证。

从userDetailService得到user以后,就会进入到DaoAuthenticationProvider中,这是框架中定义的 ,然后跳入其中的authenticate方法中。

该方法会进行两个检查,分别是

preAuthenticationChecks : 主要进行的是对用户是否过期等信息的校验,调用的方法在userDetail中有定义的。

additionalAuthenticationChecks : 这个就是用户名密码验证的过程了。

而PasswordEncoder是我们xml中注入的bean,所以了,我们调用的则是我们自己完成的passwordEncoder

public class MyPasswordEncoder extends MessageDigestPasswordEncoder {

public MyPasswordEncoder(String algorithm) {

super(algorithm);

}

@Override

public boolean isPasswordValid(String encPass, String rawPass, Object salt) {

return encPassequals(DigestUtilsmd5DigestAsHex(rawPassgetBytes()));

}

}

这是我对其实现的一个简单版本,调用的就是spring自带的加密算法,很简单了,当然也可以使用复杂的加密方法,这个就靠自己了

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

1、首先我们电脑上要安装有SQL Server,然后要准备一个MDF数据库文件。打开SQL Server。

2、点开数据库这一级,右键点击数据库然后选择-所有任务-附加数据库-附加数据库。

3、在d出界面上点击…按钮,然后找到准备好的MDF数据库文件的存放位置。

4、找到之后选择MDF数据库文件,并点击确定按钮。

5、窗口自动关闭后你就会发现,数据库已经附加上了。

6、如果想把这个数据库去掉的话,那就右键该数据库(比如刚刚附加的数据库)选择所有任务—分离数据库—确定。

想要对数据库文件进行保密设置,可以通过风奥金甲的数据加密软件来实现,由于数据库的安全漏洞比较多,导致数据库本身泄密的风险也比较高,风奥金甲的数据库加密软甲通过对数据库文件的访问控制技术,可以控制数据库文件的拷贝、导出等二十多项 *** 作,同时数据库文件还可以自己备份。有效的对数据库文件进行保密。提高数据库的安全性。

插入加密数据:

1、INSERT

INTO

userdata(username,pasword,encryptedpassword)

2、VALUES

('smith','htims',AES_ENCRYPT('htims','key'))

上面的插入语句有三个字段,“用户名”、“密码”和“加密的密码”。

AES_ENCRYPT()函数需要一个“key”来协助加密,同样,解密也需要它。

从表中查询加密数据

1、SELECT

username,pasword,AES_DECRYPT(encryptedpassword,'key')

2、FROM

userdata

热心网友

在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

进制字符串应该使用系统内置函数

sysfn_varbintohexstr()(只在sqlserver2005下有),如下所示:select

sysfn_varbintohexstr(hashbytes('MD5',

'123456'))

然后就可以截取需要的部分select

lower(right(sysfn_varbintohexstr(hashbytes('MD5','123456')),32))为md5加密串。

以上就是关于如何对数据库进行加密和解密全部的内容,包括:如何对数据库进行加密和解密、sql server中怎么给数据库表中的用户密码加密、数据库文件如何有效的加密等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9413288.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存