1. 我用的是sql server2008如何对敏感数据进行加密前台的开发语言是jsp+java
您好,提问者:
对于敏感数据存储的时候请Java代码进行算法或者MD5加密。
对于密码啊,发送报文信息都可以进行加密的。
2. MD5算法在信息安全方面有那些主要的作用
MD5是一种信息摘要算法,说白了就是对一段信息进行计算,然后得到这段信息的"DNA",这样校验两个信息是否相同只需要对比这个"DNA"是否一样就可以了。。
当然,因为信息摘要算法具有不可逆(理论上可逆,但是代价过大)的特性,所以同时也可以对密码进行所谓的“加密”。。
3. md5是常用的数据加密算法正确吗
不对,这只是一种信息摘要算法,就是从一段数据(不管其大小)中通过计算提取出摘要信息组成一个128位(16字节)的散列值,也就是说不管数据有多少,产生的都是一个固定长度的字串,所以不可能用于数据加密,主要用于验证数据传输的正确性(比如数据从A地传输前先计算其MD5值,传输到B地后再计算MD5值,两个值相同即表示传输是完全准确的),也可以用作密码数据的加密储存(但这里所谓的“加密”与通常理解的数据“加密”不是同一概念)。通俗来讲,MD5更像是指纹,通过在不同场合提取指纹进行比对,就可以知道两个人是否为同一个人。
4. md5值是什么,有什么用
md5是个散列函数,任何数据经过md5将生成一个16位的值或32位的值〔md5的版本不同造成位数不同〕。
md5有两个重要的性质,第一是无法逆推,只有md5生成的值是无法逆推出原有数据的。第二是原数据只要有一点改动,md5值就会有很大变动。
这两个性质决定了md5有很多用途。第一个性质在密码领域大有用途,我们如果把qq密码丢了,用密保找回,这是腾讯肯定不会给你原密码的,而是让输入新密码,这是因为你的原密码在存入数据库前,经过了md5〔也可能是其他散列函数,散列函数都有这性质,只不过md5是最出名的〕处理,这时谁都无法知道原密码,即使数据库数据泄漏,别人也无法知道原密码,而当你输入原密码登录时,密码就用原来的方法处理一下,与数据库里的加密密码对比,想同就允许登录。这个只能改密码不能获取新密码的情况在其他密码的应用比比皆是,银行也是一个。
第二个用途楼上也说了,就是检验,文件检验也是种应用,不过这只是简单的应用,一般我们去ATM机取款,ATM机会把我们的取款金额加密传输到服务器,可是中途出现问题数据被改了怎么办,这时就可以用MD5检验啦,如果检验没问题,只要保证线路没问题,那么所传的数据就是没问题的,不然就是传输出问题的,钱可是个敏感的东西,银行的东西可不能出现一丝差错,所以银行的数据都是经过层层检验的。
5. md5是常用的数据加密算法正确吗
摘要 对。
6. MD5是不可逆的,那各种行业领域就都用MD5可以了,为什么还要用其他的加密算法,能举些其他加密算法的应用
md5严格来说,只是特征值,并不是加密算法
也就是说md5可以用来校验数据完整性,但无法保密
加密的目的是让外人不知道数据是什么
而不管是什么加密算法,都有理论上的破解可能性,无非是花多少时间已经多大成本
另外不同算法加密和解密的时候开销也不一样,有的占资源多,有速度快,有的不好破解
在不同前提下就有了最合适的算法
也就是说,加密算法追求的无非是更快,更省资源,更难破解,而这几个往往是矛盾的,于是就有了各个方向上的研究创新,最终出现的了大量算法。
7. 为什么不能用MD5或SHA-1作为检错码算法
通常所说的检错码是用于实施性较高的场合,例如数据的实时存储,数据的通信传输等等。有很多种算法可以保证在很小开销的情况下,实现传输数据错误检测的功能。而md5或sha-1算法,主要是用来检测数据的完整性,算法复杂性稍微大一些。也就是说杀鸡焉用牛刀?
8. 谁能通俗易懂地讲讲MD5加密原理
MD5算法的原理可简要的叙述为:MD5码以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。
在MD5算法中,首先需要对信息进行填充,这个数据按位(bit)补充,要求最终的位数对512求模的结果为448。也就是说数据补位后,其位数长度只差64位(bit)就是512的整数倍。
即便是这个数据的位数对512求模的结果正好是448也必须进行补位。
补位的实现过程:首先在数据后补一个1 bit; 接着在后面补上一堆0 bit, 直到整个数据的位数对512求模的结果正好为448。总之,至少补1位,而最多可能补512位。
(8)敏感数据是否可以使用md5算法扩展阅读
当需要保存某些密码信息以用于身份确认时,如果直接将密码信息以明码方式保存在数据库中,不使用任何保密措施,系统管理员就很容易能得到原来的密码信息,这些信息一旦泄露, 密码也很容易被破译。为了增加安全性,有必要对数据库中需要保密的信息进行加密,这样,即使有人得到了整个数据库,如果没有解密算法,也不能得到原来的密码信息。
MD5算法可以很好地解决这个问题,因为它可以将任意长度的输入串经过计算得到固定长度的输出,而且只有在明文相同的情况下,才能等到相同的密文,并且这个算法是不可逆的,即便得到了加密以后的密文,也不可能通过解密算法反算出明文。
这样就可以把用户的密码以MD5值(或类似的其它算法)的方式保存起来,用户注册的时候,系统是把用户输入的密码计算成 MD5 值,然后再去和系统中保存的 MD5 值进行比较,如果密文相同,就可以认定密码是正确的,否则密码错误。
通过这样的步骤,系统在并不知道用户密码明码的情况下就可以确定用户登录系统的合法性。这样不但可以避免用户的密码被具有系统管理员权限的用户知道,而且还在一定程度上增加了密码被破解的难度。
MD5 算法还可以作为一种电子签名的方法来使用,使用 MD5算法就可以为任何文件(不管其大小、格式、数量)产生一个独一无二的“数字指纹”,借助这个“数字指纹”,通过检查文件前后 MD5 值是否发生了改变,就可以知道源文件是否被改动。
9. MD5、SHA1、CRC32值是干什么的
MD5可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5由MD4、MD3、MD2改进而来,主要增强算法复杂度和不可逆性。MD5算法因其普遍、稳定、快速的特点,仍广泛应用于普通数据的加密保护领域 。
SHA-1(英语:Secure Hash Algorithm 1,中文名:安全散列算法1)是一种密码散列函数,美国国家安全局设计,并由美国国家标准技术研究所(NIST)发布为联邦数据处理标准(FIPS)。SHA-1可以生成一个被称为消息摘要的160位(20字节)散列值,散列值通常的呈现形式为40个十六进制数。
CRC32检错能力极强,开销小,易于用编码器及检测电路实现。从其检错能力来看,它所不能发现的错误的几率仅为0.0047%以下。从性能上和开销上考虑,均远远优于奇偶校验及算术和校验等方式。
因而,在数据存储和数据通讯领域,CRC无处不在:着名的通讯协议X.25的FCS(帧检错序列)采用的是CRC-CCITT,ARJ、LHA等压缩工具软件采用的是CRC32,磁盘驱动器的读写采用了CRC16,通用的图像存储格式GIF、TIFF等也都用CRC作为检错手段。
(9)敏感数据是否可以使用md5算法扩展阅读:
在MD5算法中,首先需要对信息进行填充,这个数据按位(bit)补充,要求最终的位数对512求模的结果为448。也就是说数据补位后,其位数长度只差64位(bit)就是512的整数倍。即便是这个数据的位数对512求模的结果正好是448也必须进行补位。
补位的实现过程:首先在数据后补一个1 bit; 接着在后面补上一堆0 bit, 直到整个数据的位数对512求模的结果正好为448。总之,至少补1位,而最多可能补512位 。
10. 常用的加密算法有哪些
对称密钥加密
对称密钥加密 Symmetric Key Algorithm 又称为对称加密、私钥加密、共享密钥加密:这类算法在加密和解密时使用相同的密钥,或是使用两个可以简单的相互推算的密钥,对称加密的速度一般都很快。
分组密码
分组密码 Block Cipher 又称为“分块加密”或“块加密”,将明文分成多个等长的模块,使用确定的算法和对称密钥对每组分别加密解密。这也就意味着分组密码的一个优点在于可以实现同步加密,因为各分组间可以相对独立。
与此相对应的是流密码:利用密钥由密钥流发生器产生密钥流,对明文串进行加密。与分组密码的不同之处在于加密输出的结果不仅与单独明文相关,而是与一组明文相关。
DES、3DES
数据加密标准 DES Data Encryption Standard 是由IBM在美国国家安全局NSA授权下研制的一种使用56位密钥的分组密码算法,并于1977年被美国国家标准局NBS公布成为美国商用加密标准。但是因为DES固定的密钥长度,渐渐不再符合在开放式网络中的安全要求,已经于1998年被移出商用加密标准,被更安全的AES标准替代。
DES使用的Feistel Network网络属于对称的密码结构,对信息的加密和解密的过程极为相似或趋同,使得相应的编码量和线路传输的要求也减半。
DES是块加密算法,将消息分成64位,即16个十六进制数为一组进行加密,加密后返回相同大小的密码块,这样,从数学上来说,64位0或1组合,就有2^64种可能排列。DES密钥的长度同样为64位,但在加密算法中,每逢第8位,相应位会被用于奇偶校验而被算法丢弃,所以DES的密钥强度实为56位。
3DES Triple DES,使用不同Key重复三次DES加密,加密强度更高,当然速度也就相应的降低。
AES
高级加密标准 AES Advanced Encryption Standard 为新一代数据加密标准,速度快,安全级别高。由美国国家标准技术研究所NIST选取Rijndael于2000年成为新一代的数据加密标准。
AES的区块长度固定为128位,密钥长度可以是128位、192位或256位。AES算法基于Substitution Permutation Network代换置列网络,将明文块和密钥块作为输入,并通过交错的若干轮代换"Substitution"和置换"Permutation"操作产生密文块。
AES加密过程是在一个4*4的字节矩阵(或称为体State)上运作,初始值为一个明文区块,其中一个元素大小就是明文区块中的一个Byte,加密时,基本上各轮加密循环均包含这四个步骤:
ECC
ECC即 Elliptic Curve Cryptography 椭圆曲线密码学,是基于椭圆曲线数学建立公开密钥加密的算法。ECC的主要优势是在提供相当的安全等级情况下,密钥长度更小。
ECC的原理是根据有限域上的椭圆曲线上的点群中的离散对数问题ECDLP,而ECDLP是比因式分解问题更难的问题,是指数级的难度。而ECDLP定义为:给定素数p和椭圆曲线E,对Q=kP,在已知P,Q 的情况下求出小于p的正整数k。可以证明由k和P计算Q比较容易,而由Q和P计算k则比较困难。
数字签名
数字签名 Digital Signature 又称公钥数字签名是一种用来确保数字消息或文档真实性的数学方案。一个有效的数字签名需要给接收者充足的理由来信任消息的可靠来源,而发送者也无法否认这个签名,并且这个消息在传输过程中确保没有发生变动。
数字签名的原理在于利用公钥加密技术,签名者将消息用私钥加密,然后公布公钥,验证者就使用这个公钥将加密信息解密并对比消息。一般而言,会使用消息的散列值来作为签名对象。