数据库加密的实现技术

全部回答2
默认 最新
  • 好像没这东西 你在编程语言中实现把 这种情况我都是用md5加密 虽然你不想听理论。。。我也懒得写代码。。。 1、把用户的密码用md5改变成32个字符 2、将这字符串写到数据库里 3、判断密码是否正确的时候,把用户输入的密码在用md5改变成32个字符、判断这字符串和数据库中字符串是否相同 下面是java的md5用法 import java.security.messagedigest; public class md5 { private final static string[] hexdigits = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f" }; //将字节数组转换为十六进制字符串 private static string bytearraytohexstring(byte[] b) { stringbuffer resultsb = new stringbuffer(); for (int i = 0; i < b.length; i++) { resultsb.append(bytetohexstring(b[i])); } return resultsb.tostring(); } //将字节转换为十六进制字符 private static string bytetohexstring(byte b) { int n = b; if (n < 0) n = 256 + n; int d1 = n / 16; int d2 = n % 16; return hexdigits[d1] + hexdigits[d2]; } public static string md5encode(string origin) { string resultstring = null; try { resultstring = new string(origin); //messagedigest 类为应用程序提供信息摘要算法的功能,如 md5 或 sha 算法 messagedigest md = messagedigest.getinstance("md5"); resultstring = bytearraytohexstring(md.digest(resultstring .getbytes("gbk"))); } catch (exception ex) { } return resultstring; } public static void main(string[] args) { system.out.println(md5.md5encode("admin")); system.out.println(md5.md5encode("密码内容")); } }
    0 点赞
  • 对数据进行加密,主要有三种方式:系统中加密、客户端(DBMS外层)加密、服务器端(DBMS内核层)加密。客户端加密的好处是不会加重数据库服务器的负载,并且可实现网上的传输加密,这种加密方式通常利用数据库外层工具实现。而服务器端的加密需要对数据库管理系统本身进行操作,属核心层加密,如果没有数据库开发商的配合,其实现难度相对较大。此外,对那些希望通过ASP获得服务的企业来说,只有在客户端实现加解密,才能保证其数据的安全可靠。1.常用数据库加密技术信息安全主要指三个方面。一是数据安全,二是系统安全,三是电子商务的安全。核心是数据库的安全,将数据库的数据加密就抓住了信息安全的核心问题。对数据库中数据加密是为增强普通关系数据库管理系统的安全性,提供一个安全适用的数据库加密平台,对数据库存储的内容实施有效保护。它通过数据库存储加密等安全方法实现了数据库数据存储保密和完整性要求,使得数据库以密文方式存储并在密态方式下工作,确保了数据安全。1.1数据库加密技术的功能和特性经过近几年的研究,我国数据库加密技术已经比较成熟。一般而言,一个行之有效的数据库加密技术主要有以下6个方面的功能和特性。(1)身份认证:用户除提供用户名、口令外,还必须按照系统安全要求提供其它相关安全凭证。如使用终端密钥。(2) 通信加密与完整性保护:有关数据库的访问在网络传输中都被加密,通信一次一密的意义在于防重放、防篡改。(3) 数据库数据存储加密与完整性保护:数据库系统采用数据项级存储加密,即数据库中不同的记录、每条记录的不同字段都采用不同的密钥加密,辅以校验措施来保证数据库数据存储的保密性和完整性,防止数据的非授权访问和修改。(4)数据库加密设置:系统中可以选择需要加密的数据库列,以便于用户选择那些敏感信息进行加密而不是全部数据都加密。只对用户的敏感数据加密可以提高数据库访问速度。这样有利于用户在效率与安全性之间进行自主选择。(5)多级密钥管理模式:主密钥和主密钥变量保存在安全区域,二级密钥受主密钥变量加密保护,数据加密的密钥存储或传输时利用二级密钥加密保护,使用时受主密钥保护。(6) 安全备份:系统提供数据库明文备份功能和密钥备份功能。1.2对数据库加密系统基本要求(1) 字段加密;(2) 密钥动态管理;(3) 合理处理数据;(4) 不影响合法用户的操作;(5) 防止非法拷贝;1.3数据库数据加密的实现使用数据库安全保密中间件对数据库进行加密是最简便直接的方法。主要是通过系统中加密、DBMS内核层(服务器端)加密和DBMS外层(客户端)加密。在系统中加密,在系统中无法辨认数据库文件中的数据关系,将数据先在内存中进行加密,然后文件系统把每次加密后的内存数据写入到数据库文件中去,读入时再逆方面进行解密就,这种加密方法相对简单,只要妥善管理密钥就可以了。缺点对数据库的读写都比较麻烦,每次都要进行加解密的工作,对程序的编写和读写数据库的速度都会有影响。在DBMS内核层实现加密需要对数据库管理系统本身进行操作。这种加密是指数据在物理存取之前完成加解密工作。这种加密方式的优点是加密功能强,并且加密功能几乎不会影响DBMS的功能,可以实现加密功能与数据库管理系统之间的无缝耦合。其缺点是加密运算在服务器端进行,加重了服务器的负载,而且DBMS和加密器之间的接口需要DBMS开发商的支持。在DBMS外层实现加密的好处是不会加重数据库服务器的负载,并且可实现网上的传输,加密比较实际的做法是将数据库加密系统做成DBMS的一个外层工具,根据加密要求自动完成对数据库数据的加解密处理。采用这种加密方式进行加密,加解密运算可在客户端进行,它的优点是不会加重数据库服务器的负载并且可以实现网上传输的加密,缺点是加密功能会受到一些限制,与数据库管理系统之间的耦合性稍差。数据库加密系统分成两个功能独立的主要部件:一个是加密字典管理程序,另一个是数据库加解密引擎。数据库加密系统将用户对数据库信息具体的加密要求以及基础信息保存在加密字典中,通过调用数据加解密引擎实现对数据库表的加密、解密及数据转换等功能。数据库信息的加解密处理是在后台完成的,对数据库服务器是透明的。按以上方式实现的数据库加密系统具有很多优点:首先,系统对数据库的最终用户是完全透明的,管理员可以根据需要进行明文和密文的转换工作;其次,加密系统完全独立于数据库应用系统,无须改动数据库应用系统就能实现数据加密功能;第三,加解密处理在客户端进行,不会影响数据库服务器的效率。数据库加解密引擎是数据库加密系统的核心部件,它位于应用程序与数据库服务器之间,负责在后台完成数据库信息的加解密处理,对应用开发人员和操作人员来说是透明的。数据加解密引擎没有操作界面,在需要时由操作系统自动加载并驻留在内存中,通过内部接口与加密字典管理程序和用户应用程序通讯。数据库加解密引擎由三大模块组成:加解密处理模块、用户接口模块和数据库接口模块。
    0 点赞

没有更多内容了

返回顶部
产品求购 求购