① 如何打开加密过的*db数据库文件(知道密码)
方法和详细的操作步骤如下:
1、第一步,打开程序后,可以在程序左侧看到“数据库列表”,展开以查看打开的所有数据库,见下图,转到下面的步骤。
② 系统数据安全
部分航空物探项目是带有一定密级的,其项目所取得的成果资料属于保密数据,这部分数据也存储在本系统的数据库中。因此,需防止保密数据被窃走或蓄意破坏,如越权提取数据库保密数据或在通信线路上进行窃听等。对这样的威胁最有效的解决方法就是对数据进行加密处理,把可读的保密数据转化为密码数据,以加密格式存储和传输,在使用时再解密。
航空物探保密项目的密级分机密、秘密、绝密3个密级。本系统仅对保密项目数据进行加密处理,机密和秘密项目资料采用64位密钥进行加密,绝密项目资料采用128位密钥进行加密,非保密项目数据不做任何加密处理。进入资料采集库中的数据通过正确性检查后,归档入库进入资料库时,系统根据设置的项目密级进行自动加密。用户也可以通过加密-解密功能对资料库中的数据进行加密或解密。相同类型的加密数据与未加密数据均存储在资料库同一张表的同一字段中,但在数据加密-解密记录表数据库(表3-8)中,记录了加密数据库表代码和字段代码。当用户获得授权访问保密数据时,系统根据该表中的记录自动对数据进行解密。
表3-8 数据加密-解密记录表数据库结构
一、数据加密与解密
根据密钥类型不同将现代密码技术分为两类:对称加密算法(秘密钥匙加密)和非对称加密算法(公开密钥加密)。对称钥匙加密系统是加密和解密均采用同一把秘密钥匙,而且通信双方都必须获得这把钥匙,并保持钥匙的秘密。非对称密钥加密系统采用的加密钥匙(公钥)和解密钥匙(私钥)是不同的。
对称加密算法用来对敏感数据等信息进行加密,常用的算法包括:DES(Data En-cryption Standard),数据加密标准,速度较快,适用于加密大量数据的场合;3DES(Triple DES),是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高;AES(Advanced Encryption Standard),高级加密标准,速度快,安全级别高。常见的非对称加密算法有:RSA,由RSA公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件快的长度也是可变的;DSA(Digital Signature Algorithm),数字签名算法,是一种标准的DSS(数字签名标准)。
本系统采用AES和DES加密算法对数据库数据进行加算或解密(图3-4)。
图3-4 数据库数据加密-解密过程
AES加密算法是美国国家标准和技术协会(NIST)2000年10月宣布通过从15种候选加密算法中选出的一项新的密钥加密标准,于2002年5月26日制定了新的高级加密标准(AES)规范。
AES算法基于排列(对数据重新进行安排)和置换(将一个数据单元替换为另一个)运算,采用几种不同的方法来执行排列和置换运算。它是一个迭代的、对称密钥分组的密码,可以使用128、192和256位密钥,并且用128位(16字节)分组加密和解密,数据通过分组密码返回的加密数据的位数与输入数据相同。迭代加密使用一个循环结构,在该循环中重复置换和替换输入数据。
DES算法把64位的明文输入块变为64位的密文输出块,它所使用的密钥也是64位。首先,DES把输入的64位数据块按位重新组合,并把输出分为L0、R0两部分,每部分各长32位,并进行前后置换(输入的第58位换到第一位,第50位换到第2位,依此类推,最后一位是原来的第7位),最终由L0输出左32位,R0输出右32位。根据这个法则经过16次迭代运算后,得到L16、R16,将此作为输入,进行与初始置换相反的逆置换,即得到密文输出。
二、日志跟踪
为了有效地监控航空物探保密数据的访问,确保保密数据安全,本系统针对保密数据开发了保密数据访问日志跟踪功能。该功能类似于“摄像机”,把访问数据库中保密数据的时间、用户、IP地址等信息记录在数据库的日志库表中,以备侦查。
首先,对保密数据进行日志跟踪定义,即对用户的哪些操作进行跟踪。系统提供了对用户的查询、新增、修改、删除4种操作进行跟踪功能,可以根据需要进行选择其一或多个(图3-5)。
日志跟踪定义生效后,系统自动对用户实施跟踪,并记录用户登录名、登录和退出时间(年/月/日,时/分/秒)、登录计算机的IP地址,用户对数据库数据所进行的查询、新增、修改、删除操作。系统还提供了跟踪日志记录查询、打印、导出Excel表格文件等功能,便于数据库管理人员使用。
图3-5 数据库日志跟踪设置
三、数据提取安全机制
数据提取是航空物探信息系统向地质、地球物理等领域的科研人员提供数据服务的重要内容之一。防止越权提取数据,保证数据安全,是本系统提供优质、高效服务的前提。
越权提取数据是两个方面的问题。一是用户在没有获得授权情况窃取数据,此问题属系统使用安全。二是获得授权的用户擅自扩大提取数据的范围,“顺手牵羊”多提取数据。针对该问题,本系统采用以下机制(图3-6)。
图3-6 数据库数据提取安全机制模型
首先由用户(需要数据的单位或个人)提出使用数据申请,填写使用数据审批表。该表包含申请号、申请人、使用数据的范围(经纬度坐标)、审批人、审批日期、使用数据目的等信息。
用户申请获批准后,与中心签订资料使用保密协议。系统管理员授予用户“数据提取权”,根据批准的申请设置提取数据的范围,和数据提取权的有效期限。
在有效期限内,用户可以提取设定范围内的数据。同时,系统自动在数据提取记录表中记录用户数据提取日志(记录提取数据的范围、数据测量比例尺、数据来源的库表、数据提取人和提取日期等),以备查系统数据安全。
③ 十大常见密码加密方式
一、密钥散列
采用MD5或者SHA1等散列算法,对明文进行加密。严格来说,MD5不算一种加密算法,而是一种摘要算法。无论多长的输入,MD5都会输出一个128位(16字节)的散列值。而SHA1也是流行的消息摘要算法,它可以生成一个被称为消息摘要的160位(20字节)散列值。MD5相对SHA1来说,安全性较低,但是速度快;SHA1和MD5相比安全性高,但是速度慢。
二、对称加密
采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密。对称加密算法中常用的算法有:DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK等。
三、非对称加密
非对称加密算法是一种密钥的保密方法,它需要两个密钥来进行加密和解密,这两个密钥是公开密钥和私有密钥。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。非对称加密算法有:RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)。
四、数字签名
数字签名(又称公钥数字签名)是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。它是一种类似写在纸上的普通的物理签名,但是在使用了公钥加密领域的技术来实现的,用于鉴别数字信息的方法。
五、直接明文保存
早期很多这样的做法,比如用户设置的密码是“123”,直接就将“123”保存到数据库中,这种是最简单的保存方式,也是最不安全的方式。但实际上不少互联网公司,都可能采取的是这种方式。
六、使用MD5、SHA1等单向HASH算法保护密码
使用这些算法后,无法通过计算还原出原始密码,而且实现比较简单,因此很多互联网公司都采用这种方式保存用户密码,曾经这种方式也是比较安全的方式,但随着彩虹表技术的兴起,可以建立彩虹表进行查表破解,目前这种方式已经很不安全了。
七、特殊的单向HASH算法
由于单向HASH算法在保护密码方面不再安全,于是有些公司在单向HASH算法基础上进行了加盐、多次HASH等扩展,这些方式可以在一定程度上增加破解难度,对于加了“固定盐”的HASH算法,需要保护“盐”不能泄露,这就会遇到“保护对称密钥”一样的问题,一旦“盐”泄露,根据“盐”重新建立彩虹表可以进行破解,对于多次HASH,也只是增加了破解的时间,并没有本质上的提升。
八、PBKDF2
该算法原理大致相当于在HASH算法基础上增加随机盐,并进行多次HASH运算,随机盐使得彩虹表的建表难度大幅增加,而多次HASH也使得建表和破解的难度都大幅增加。
九、BCrypt
BCrypt 在1999年就产生了,并且在对抗 GPU/ASIC 方面要优于 PBKDF2,但是我还是不建议你在新系统中使用它,因为它在离线破解的威胁模型分析中表现并不突出。
十、SCrypt
SCrypt 在如今是一个更好的选择:比 BCrypt设计得更好(尤其是关于内存方面)并且已经在该领域工作了 10 年。另一方面,它也被用于许多加密货币,并且我们有一些硬件(包括 FPGA 和 ASIC)能实现它。 尽管它们专门用于采矿,也可以将其重新用于破解。
④ sql server中怎么给数据库表中的用户密码加密
1、首先我们电脑上要安装有SQL Server,然后要准备一个MDF数据库文件。打开SQL Server。
⑤ 如何把数据库中加密的密码还原
加密算法有对称加密和非对称加密。
对称加密比如DES在加密和解密时使用同一个密钥,通过密钥就能还原了。
而非对称加密比如RSA加密和解密时使用不同的密钥,加密使用私钥,而解密时需要公钥;另外现在很多密码存储都是通过散列算法的比如MD5。
而MD5是单向的,不能逆向解密(数学非常好可以尝试下);所以很多网站门户用户密码丢失时都是重置密码而不能找回。
⑥ 非对称加密算法的主要应用
非对称加密(公钥加密):指加密和解密使用不同密钥的加密算法,也称为公私钥加密。假设两个用户要加密交换数据,双方交换公钥,使用时一方用对方的公钥加密,另一方即可用自己的私钥解密。如果企业中有n个用户,企业需要生成n对密钥,并分发n个公钥。假设A用B的公钥加密消息,用A的私钥签名,B接到消息后,首先用A的公钥验证签名,确认后用自己的私钥解密消息。由于公钥是可以公开的,用户只要保管好自己的私钥即可,因此加密密钥的分发将变得 十分简单。同时,由于每个用户的私钥是唯一的,其他用户除了可以通过信息发送者的公钥来验证信息的来源是否真实,还可以通过数字签名确保发送者无法否认曾发送过该信息。非对称加密的缺点是加解密速度要远远慢于对称加密,在某些极端情况下,甚至能比对称加密慢上1000倍。
//加密
UnicodeEncoding encoding = new UnicodeEncoding();
byte[] PasswordBytes = encoding.GetBytes(password);//将密码转换为字节数组RSACryptoServiceProvider crypt=new RSACryptoServiceProvider();//RSA加密算法,非对称PasswordBytes=crypt.Encrypt(password ,false);//加密字节数组,这是加密后的密码值,放入数据库中的表字段中。
string key=crypt.ToXmlString(true);//输出密钥为XML格式的字符串,且包含私钥,这个字符串要作为数据库表中的一个字段同用户的密码放在一起。
//解密
RSACryptoServiceProvider crypt=new RSACryptoServiceProvider();//已随机生成了一个密钥对
crypt.Clear();//毁掉当前密钥对
crypt.FromXmlString(key)//输入密钥对,key是从数据库表字段中读取的那个XML格式的字符串,即密钥字段PasswordBytes=crypt.Decrypt(password ,false);//解密字节数组,返回原始密码给用户
上面方法的一个特点是每个用户对应一个密钥(包含公钥和私钥),它们都是随机生成的,所以各不相同。不过缺点也是很明显的,就是密钥存储在数据库中,如果数据库被攻破密钥就泄漏了。
还有另外一个方法就是依照上面方法随机生成一个密钥对(包含公钥和私钥),通过ToXmlString(true)方法导出,然后把这个XML字符串格式的密钥放到你的Web程序的Web.config文件的AppSetting节点里面,然后通过FromXmlString(key)方法读入密钥,这样就意味着所有的用户密码都用同一个密钥对加密和解密。
⑦ a想要使用非对称密码系统向b发送秘密消息.a应该使用哪个密钥来加密消息
对称密码体制实现安全数据通信过程:(1)A和B协商用同一密码系统。(2)A和B协商同一密钥。(3)A用加密算法和选取的密钥加密他的铭文信息,得到了密文信息。(4)A发送密文信息给B。(5)B用同样的算法和密钥解密密文,然后读它。 非对称密码体制实现安全数据通信过程:(1)B从数据库中得到A的公钥。(2)B用A的公钥加密信息,然后发送给A。(3)A用自己的私钥解密B发送的信息。在B给A发送信息前,A必须将他的公钥传送给B。 两种体制的主要区别:对称密钥加解密使用的同一个密钥,或者能从加密密钥很容易推出解密密钥;非对称密钥算法的加密密钥和解密密钥是不一样的,或者说不能由其中一个密钥推导出另一个密钥。对称密钥算法具有加密处理简单,加解密速度快,密钥较短,发展历史悠久等特点,非对称密钥算法具有加解密速度慢的特点,密钥尺寸大,发展历史较短等特点。
⑧ sql数据加密有几种方法
对sql中的数据进行加密,有5种方法,
1、利用CONVERT改变编码方式:
利用该函数把文字或数据转换成VARBINARY。但该方式不具备保护数据的能力,仅避免浏览数据的过程中能直接看到敏感数据的作用。
2、利用对称密钥:
搭配EncryptByKey进行数据加密。使用DecryptByKey函数进行解密。这种方式比较适合大数据量。因为对称密钥的过程耗用资源较少。
3、利用非对称密钥:
搭配EncryptByAsymKey进行数据加密。使用DecryptByAsymKey函数进行解密。用于更高安全级别的加解密数据。因为耗用资源叫多。
4、利用凭证的方式:
搭配EncryptByCert进行加密和DecryptByCert函数进行解密。比较类似非对称密钥。
5、利用密码短语方式:
搭配EncryptBypassPhrase进行加密,使用DecryptByPassPhrase函数来解密。可以使用有意义的短语或其他数据行,当成加密、解密的关键字,比较适合一般的数据加解密。
(8)非对称加密数据库密码扩展阅读:
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数据库
⑨ asp.net mvc怎么给密码加密后存进数据库,然后再从数据库取出,解密再显示出来
现在通用的都是 MD5非对称加密方法来保证用户密码的安全,意思就是只能加密,不能解密。
如果需要解密码就得用对称加密方法。在.NET库的System.Security.Cryptography命名空间中,有有RC2、DES、TripleDES和Rijndael四种对称加密方法,可选用
⑩ 应用程序 应当在什么时候加密数据
在什么时候加密,要看你的程序在什么阶段最容易受到攻击。
一般数据最容易被窃听的阶段是传输阶段,因此加密一般发生在数据传输过程前后,即客户端在提交数据之前对其进行加密,数据库或服务器端接收到加密的数据之后对其进行解密,然后以明文形式保存。这种加密形式一般采用对称加密或非对称加密技术。
数据库端以加密数据进行保存的方式一般发生在存储密码的时候。这样任何人包括数据库管理员都不能看到密码原文,这种加密方式一般采用尽量不可逆的形式,比如md5。