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

如何对数据库进行加密和解密,第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自带的加密算法,很简单了,当然也可以使用复杂的加密方法,这个就靠自己了

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

创建login

--创建一个名为'abcdef'的登陆,密码为'abcdef123',不使用密码策略

CREATE LOGIN 'abcdef' WITH PASSWORD = N'abcdef123',CHECK_policy = OFF

--CHECK_policy是强密码策略,就是什么密码必须包含大小写的字母数字符号这种约束

创建user

--切换到你需要建立user的数据库下

use yourdb

go

--在这个库下,给登陆名'abcdef'建立一个user,名为'abcdef'

create user abcdef for login abcdef;

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

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

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

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

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

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

关于数据库安全及其防范方案的分析

随着网络的不断发展,数据的共享日益加强,数据的安全保密越来越重要。为了计算机数据库整体安全性的控制,需要做好很多细节性的工作,并根据具体应用环境的安全需要来分析安全薄弱环节,并制定统一的安全管理策略加以实施,以保证其最高的安全性。

1数据库安全环境的分析

随着时代的发展,我国的计算机信息安全标准也在不断提升。在当下的数据库系统安全控制模块中,我国数据库安全分为不同的等级。但是总体来说,我国的数据库安全性是比较低的,这归结于我国数据技术体系的落后。为了更好的健全计算机数据库体系,进行数据库安全体系的研究是必要的。我国现有的一系列数据安全理论是落后于发达国家的。这体现在很多的应用领域,比如电力领域、金融领域、保险领域等。很多软件都是因为其比较缺乏安全性而得不到较大范围的应用,归根结底是数据库安全性级别比较低。

为了满足现阶段数据库安全工作的需要,进行相关标准的深化研究是必要的。这需要对数据库安全进行首要考虑,且需要考虑到方方面面,才更有利于数据库保密性的控制,从而保证这些数据存储与调用的一致性。

在当前数据库安全控制过程中,首先需要对这些数据进行可用性的分析,从而有利于避免数据库遭到破坏,更有利于进行数据库的损坏控制及其修复。其次为了保证数据库的安全性、效益性,也离不开对数据库整体安全性方案的应用。最后必须对数据库进行的一切 *** 作进行跟踪记录,以实现对修改和访问数据库的用户进行追踪,从而方便追查并防止非法用户对数据库进行 *** 作。

2数据库安全策略的更新

为了满足现阶段数据库安全性方案的应用,进行身份的鉴别是必要的。所谓的身份鉴别就是进行真实身份及其验证身份的配比,这样可以避免欺诈及其假冒行为的发生。身份鉴别模式的应用,表现在用户使用计算机系统进行资源访问时。当然在一些特定情况下,也要进行身份鉴别,比如对某些稀缺资源的访问。

身份鉴别通常情况下可以采用以下三种方法:一是通过只有被鉴别人自己才知道的信息进行鉴别,如密码、私有密钥等;二是通过只有被鉴别人才拥有的信物进行鉴别,如IC卡、护照等;三是通过被鉴别人才具有的生理或者行为特征等来进行鉴别,如指纹、笔迹等。

在当前访问控制模块中,除了进行身份鉴别模式的应用外,还需要进行信息资源的访问及其控制,这样更有利于不同身份用户的权限分配。这就需要进行访问级别的控制,针对各个系统的内部数据进行 *** 作权限的控制,进行自主性及其非自主性访问的控制,满足数据库的安全需要。实现用户对数据库访问权限进行控制,让所有的用户只能访问自己有权限使用的数据。当某一个用户具有对某些数据进行访问的权限时,他还可以把对这些数据的 *** 作权限部分或者全部的转移给其他用户,这样其他的用户也获得了对这些数据的访问权。

为了更好的进行数据库的安全管理,审计功能的应用也必不可少。这需要就数据库的数据进行统一性的 *** 作。这样管理员更加方便对数据库应用情况进行控制,审计功能也有利于对数据库的 *** 作行为进行控制,更有利于控制用户对数据库的访问。攻击检测是通过升级信息来分析系统的内部和外部所有对数据库的攻击企图,把当时的攻击现场进行复原,对相关的攻击者进行处罚。通过这种方法,可以发现数据库系统的安全隐患,从而来改进以增加数据库系统的安全性。

在数据库数据处理过程中,可以进行一些合法查询模式的应用,当需要调取保密数据时,就需要应用推理分析模块。这是数据库安全性方案控制过程中的重难点,而通过这种简单的推理分析方法调取保密数据,是得不到有效解决的。但是我们可以使用以下几种方法来对这种推理进行控制:数据加密的基本思想就是改变符号的排列方式或按照某种规律进行替换,使得只有合法的用户才能理解得到的数据,其他非法的用户即使得到了数据也无法了解其内容。

通过对加密粒度的应用,更有利于进行数据库加密性的控制。其分为几种不同的应用类型等级。在当前应用模块中,需要进行数据保护级别的分析,进行适当的加密粒度的分析。更有利于满足数据库级别加密的需要。该加密技术的应用针对的是整体数据库,从而针对数据库内部的表格、资料等加密。采用这种加密粒度,加密的密钥数量较少,一个数据库只需要一个加密密钥,对于密钥的管理比较简单。但是,由于数据库中的数据能够被许多的用户和应用程序所共享,需要进行很多的数据处理,这将极大的降低服务器的运行效率,因此这种加密粒度只有在一些特定的情况下才使用。

表级加密也是比较常用的方法,这种方法应用于数据库内部的数据加密。针对具体的存储数据页面进行加密控制。这对于系统的运行效率的提升具备一定的帮助,不会影响系统的运行效率。这种方法需要应用到一些特殊工具进行处理,比如解释器、词法分析器等,进行核心模块的控制,进行数据库管理系统源代码的控制及其优化。但是其难以确保数据库管理系统的整体逻辑性,也存在缺陷。记录级加密;这种加密技术的加密粒度是表格中的每一条记录,对数据库中的每一条记录使用专门的函数来实现对数据的加密、解密。通过这种加密方法,加密的粒度更加小巧,具有更好的选择性和灵活性。字段级加密;这种加密技术的加密粒度是表格中的某一个或者几个字段。通过字段级的加密粒度只需要对表格中的敏感列的数据进行加密,而不需要对表格中的所有的数据进行加密。

选择加密算法也是比较常见的数据加密方法。它是数据加密的核心部分。对于数据库的整体安全性的控制具有直接性的影响。通过对加密算法的分析,得知其分为公共密钥加密及其对称加密。在数据加密模块中,需要进行密文及其明文的区分,从而进行明文及其密文的转换,也就是普遍意义上的密码。密码与密钥是两个不同的概念。后者仅是收发双方知道的信息。在数据加密技术中,对密钥进行管理主要包括以下几个方面,产生密钥。产生怎样的密钥主要取决于使用什么样的算法。若产生的密钥强度不一样就称这种算法实现的是非线性的密钥空间,若产生的密钥强度一样就称这种算法实现的是线性的密钥空间。分配密钥、传递密钥:分配密钥就是产生一个密钥并且将这个密钥分配给某个用户使用的过程。

密钥的传递分为不同的应用形式,集中式与分散式。所谓的集中式就是进行密钥整体式的传递;所谓的分散式就是对密钥的多个部分进行划分,以秘密的方法给用户进行传递。通过将整体方法与分散方法应用到存储模块中,更好的满足现阶段数据库整体安全性的需要。对于密钥的备份可以使用和对密钥进行分散存储一样的方式进行,以避免太多的人知道密钥;而销毁密钥需要有管理和仲裁机制,以防止用户对自己的 *** 作进行否认。

3结束语

随着计算机,特别是网络的不断发展,数据的共享日益加强,数据的安全保密越来越重要。本文详细阐述了数据库的安全防范,分别从数据分析、用户鉴别、访问权限控制、审计、数据加密等环节逐一剖析数据库安全。为了计算机数据库整体安全性的控制,需要做好很多细节性的工作,并根据具体应用环境的安全需要来分析安全薄弱环节,并制定统一的安全管理策略加以实施,以保证其最高的安全性。

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

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

原文地址: http://outofmemory.cn/sjk/10194186.html

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

发表评论

登录后才能评论

评论列表(0条)

保存