`
kwstartw
  • 浏览: 68672 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

MessageDigest对密码进行加密

    博客分类:
  • java
阅读更多
通常,使用的加密算法 比较简便高效,密钥简短,加解密速度快,破译极其困难。本文介绍了 MD5/SHA1,DSA,DESede/DES,Diffie-Hellman的使用。
<!--START RESERVED FOR FUTURE USE INCLUDE FILES--><!-- include java script once we verify teams wants to use this and it will work on dbcs and cyrillic characters --><!--END RESERVED FOR FUTURE USE INCLUDE FILES-->

第1章基础知识

 

1.1. 单钥密码体制

单钥密码体制是一种传统的加密算法,是指信息的发送方和接收方共同使用同一把密钥进行加解密。

通常,使用的加密算法比较简便高效,密钥简短,加解密速度快,破译极其困难。但是加密的安全性依靠密钥保管的安全性,在公开的计算机网络上安全地传送和保管密钥是一个严峻的问题,并且如果在多用户的情况下密钥的保管安全性也是一个问题。

单钥密码体制的代表是美国的DES

1.2. 消息摘要

一个消息摘要就是一个数据块的数字指纹。即对一个任意长度的一个数据块进行计算,产生一个唯一指印(对于SHA1是产生一个20字节的二进制数组)。

消息摘要有两个基本属性:

  • 两个不同的报文难以生成相同的摘要
  • 难以对指定的摘要生成一个报文,而由该报文反推算出该指定的摘要

代表:美国国家标准技术研究所的SHA1和麻省理工学院Ronald Rivest提出的MD5

1.3. Diffie-Hellman密钥一致协议

密钥一致协议是由公开密钥密码体制的奠基人Diffie和Hellman所提出的一种思想。

先决条件,允许两名用户在公开媒体上交换信息以生成"一致"的,可以共享的密钥

代表:指数密钥一致协议(Exponential Key Agreement Protocol)

1.4. 非对称算法与公钥体系

1976年,Dittie和Hellman为解决密钥管理问题,在他们的奠基性的工作"密码学的新方向"一文中,提出一种密钥交换协议,允许在不安全的媒体上通过通讯双方交换信息,安全地传送秘密密钥。在此新思想的基础上,很快出现了非对称密钥密码体制,即公钥密码体制。在公钥体制中,加密密钥不同于解密密钥,加密密钥公之于众,谁都可以使用;解密密钥只有解密人自己知道。它们分别称为公开密钥(Public key)和秘密密钥(Private key)。

迄今为止的所有公钥密码体系中,RSA系统是最著名、最多使用的一种。RSA公开密钥密码系统是由R.Rivest、A.Shamir和L.Adleman俊教授于1977年提出的。RSA的取名就是来自于这三位发明者的姓的第一个字母

1.5. 数字签名

所谓数字签名就是信息发送者用其私钥对从所传报文中提取出的特征数据(或称数字指纹)进行RSA算法操作,以保证发信人无法抵赖曾发过该信息(即不可抵赖性),同时也确保信息报文在经签名后末被篡改(即完整性)。当信息接收者收到报文后,就可以用发送者的公钥对数字签名进行验证。 

在数字签名中有重要作用的数字指纹是通过一类特殊的散列函数(HASH函数)生成的,对这些HASH函数的特殊要求是:

  1. 接受的输入报文数据没有长度限制;
  2. 对任何输入报文数据生成固定长度的摘要(数字指纹)输出
  3. 从报文能方便地算出摘要;
  4. 难以对指定的摘要生成一个报文,而由该报文反推算出该指定的摘要;
  5. 两个不同的报文难以生成相同的摘要

代表:DSA

 

 

 

分享到:
评论

相关推荐

    jdbc用MD5对密码进行加密 完整

    "jdbc用MD5对密码进行加密 完整"这个主题涉及到的是如何使用Java JDBC(Java Database Connectivity)来实现用户密码的MD5加密,以提高数据安全性。MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,它...

    使用MD5算法对密码进行加密

    总的来说,MD5是一种快速但不再安全的哈希函数,曾被广泛用于密码加密,但由于安全性问题,现在已经逐渐被更强大的加密技术取代。在设计密码存储系统时,应该优先考虑使用现代的加密方法,以保护用户的密码安全。

    Java常用的对密码加密的方法(MD5,SHA)

    它们首先创建一个`MessageDigest`实例,然后使用`digest()`方法对输入的密码字符串进行散列处理,最后将结果转换为16进制字符串。 在实际应用中,为了增加安全性,通常会将散列值与盐值(salt)结合后再进行散列。...

    druid实现springmvc数据库连接的用户名和密码加密

    标题"druid实现springmvc数据库连接的用户名和密码加密"指出,我们要讨论的是如何在Spring MVC项目中利用Druid连接池进行更高级别的安全性配置,即对数据库连接的敏感信息进行加密。这通常涉及以下步骤: 1. **密码...

    (Java密码加密)MD5方式

    在IT行业中,密码的安全性是至关重要的,尤其是在网络服务中,如用户登录...总的来说,MD5在Java中的使用提供了一种简单的密码加密方式,但随着技术的发展,开发者应考虑使用更强大的加密策略来保护用户的敏感信息。

    java密码加密与解密

    总结一下,Java中的密码加密与解密主要涉及哈希函数如MD5和更安全的派生函数如PBKDF2。MD5虽然广泛使用,但因存在安全风险,现在更多地被用作基本的验证,而非密码存储。在实际应用中,应当结合加盐和多次迭代来提高...

    在java中使用MD5进行密码加密

    ### 在Java中使用MD5进行密码加密 #### 知识点概述 在现代软件开发过程中,安全性至关重要。尤其是在处理敏感信息如用户密码时,确保数据的安全性和隐私性尤为重要。MD5(Message-Digest Algorithm 5)是一种广泛...

    Java自带的加密类MessageDigest类代码示例

    在实际应用中,`MessageDigest`通常与其他技术结合使用,比如在用户密码存储时,我们会先将用户输入的明文密码通过`MessageDigest`进行哈希,然后将哈希值存储在数据库中。这样即使数据库被泄露,攻击者也无法直接...

    Java MD5 加密数据库连接池密码

    在应用启动时,会读取这个加密后的密码,然后进行解密操作,与用户输入的明文密码进行比对。具体的解密过程取决于加密策略,如果只是简单地MD5加密,那么通常不会解密,而是直接在连接池中使用加密后的密码连接...

    java密码加密

    Java密码加密技术主要涉及到数据安全领域,用于保护敏感信息,防止未经授权的访问和篡改。在Java中,我们可以使用多种加密算法来实现这一目标。以下是一些常见的加密算法及其简单的Java实现: 1. 消息摘要(数字...

    用于密码加密MD5

    这种转换过程是不可逆的,也就是说无法从散列后的结果反推出原始数据,这使得MD5非常适合用于密码加密。 #### 二、MD5的工作原理 1. **输入**: MD5可以接受任何形式的输入,无论是文本还是二进制数据。 2. **处理*...

    JAVA中使用MD5加密实现密码加密

    在 JAVA 中使用 MD5 加密实现密码加密需要借助 MessageDigest 和 BASE64Encoder 两个类。MessageDigest 类用于对数据进行加密,而 BASE64Encoder 类用于将加密后的数据转换为一个可读的字符串。 首先,我们需要新建...

    Sptring Boot整合mybatis(连接数据库测试及md5加密)

    在Java中,我们可以使用`java.security.MessageDigest`类来实现MD5加密。在用户注册或登录时,先将密码转换为MD5摘要,然后与数据库中存储的MD5值进行比对,确保密码的安全性。 为了实现这些功能,项目中可能包含...

    MD5密码加密技术.zip

    在你下载的"MD5密码加密技术.zip"文件中,可能包含了上述Java代码示例,以及如何将这些加密后的MD5值与MySQL数据库进行交互的示例。你可以直接运行这些代码,以理解和应用MD5密码加密技术。通过学习和实践这个代码,...

    MD5加密.rar(加密解密附代码和jar)

    MD5的主要用途是验证数据的完整性和一致性,以及在某些场景下作为简单的密码加密手段。 在IT行业中,MD5加密主要用于存储用户密码。当用户注册时,他们的密码不是以明文形式存储,而是通过MD5算法进行哈希处理,...

    java加密、加密demo

    本文将深入探讨Java中的加密技术,包括RSA、MD5、SHA256和SHA512等算法,以及如何通过示例(Demo)进行实际操作。 首先,让我们了解一下这些概念: 1. **RSA**:RSA是一种非对称加密算法,由Ron Rivest、Adi ...

    java中使用MD5加密算法进行加密.pdf

    MD5算法在Java中通常用于密码加密、文件校验等方面,因为它可以提供一种相对安全的方式来存储和验证用户密码。 在Java中,我们可以使用`java.security.MessageDigest`类来实现MD5加密。首先,需要获取MD5的实例,这...

    使用密码和salt值联合密码加密实现登录注册功能

    在用户登录时,我们将输入的密码与salt值一起进行同样的MD5加密,然后与数据库中存储的哈希值进行匹配,以此来验证用户的登录信息。 至于用户界面,设计应包括用户名、密码输入框,以及注册、登录按钮。注册时,...

Global site tag (gtag.js) - Google Analytics