`

MessageDigest 签名 加密

    博客分类:
  • java
阅读更多
MessageDigest 签名 加密

今天在工作中看到老系统中这么一段代码,由于没见过,有点疑惑:
try {
MessageDigest md5Digest = MessageDigest.getInstance("MD5");
byte[] signByMd5 = md5Digest.digest(str.getBytes("UTF-8"));
String result = new BASE64Encoder().encode(signByMd5);
} catch (Exception e) {
// TODO: handle exception
}
经过网上查找,才知道其真正的用途:
我们做登录时,需要将密码放入数据库,为了安全起见,我们需要对这些信息进行单向的加密处理。应用报文摘要方法

,得到单向的加密字符串放入数据库中。在以后登录时,用相同的算法算出摘要,和数据库中的比较,如果一致,这密

码正确。

MessageDigest类的使用:
MessageDigest 类是一个引擎类,它是为了提供诸如 SHA1 或 MD5 等密码上安全的报文摘要功能而设计的。密码上安

全的报文摘要可接受任意大小的输入(一个字节数组),并产生固定大小的输出,该输出称为一个摘要或散列。
摘要具有以下属性:
1.无法通过计算找到两个散列成相同值的报文。
2.摘要不反映任何与输入有关的内容。
使用报文摘要可以生成数据唯一且可靠的标识符。有时它们被称为数据的“数字指纹”。

java.security包中的MessageDigest类提供了计算消息摘要的方法,首先生成对象,执行其update( )方法可以将原始

数据传递给该对象,然后执行其digest( )方法即可得到消息摘要。
public String encryptPwd throws Exception{
String x=args[0];
MessageDigest m=MessageDigest.getInstance("MD5");
m.update(x.getBytes("UTF8"));
byte s[ ]=m.digest( );
String result="";
for (int i=0; i<s.length;i++)
result+=Integer.toHexString((0x000000ff & s[i]) | 0xffffff00).substring(6);

System.out.println(result);


}






分享到:
评论

相关推荐

    Java 签名加密 + c#签名加密

    "Java 签名加密 + C#签名加密"这个主题涉及到的就是如何在Java和C#这两种不同的编程语言之间进行安全的数据交互,确保信息不被篡改。签名加密是一种常见的安全措施,它结合了数字签名和加密技术,用于验证数据的完整...

    JAVA SHA1加密-微信签名适用

    在Java中实现SHA1加密,是确保数据安全性和完整性的一个常见做法,尤其在与微信支付接口交互时,为了保证交易的安全,会要求使用SHA1进行签名。 SHA1全称为Secure Hash Algorithm 1,它是由美国国家安全局(NSA)...

    Java实现 sm 2 3 4 加密解密签名验签工具包

    首先,SM2算法是一种基于椭圆曲线密码学(ECC)的公钥加密算法,它提供了非对称加密、数字签名和密钥交换等功能。在Java中实现SM2算法,通常需要处理椭圆曲线参数、点运算等复杂计算。这包括生成一对SM2密钥(公钥和...

    Java加密和数字签名编程快速入门

    总之,Java为加密和数字签名提供了丰富的库支持,包括`MessageDigest`、`Cipher`和`Signature`等类,开发者可以根据需求选择适合的算法和方法来保护信息安全。在实际应用中,应根据场景选择合适的安全策略,例如,...

    Java加密解密和数字签名完整代码示例

    Java 提供了多种加密算法和数字签名算法的实现,例如 `MessageDigest`、`Cipher` 等类。 1. 消息摘要算法实现: 使用 `MessageDigest` 类可以实现消息摘要算法,例如 SHA-1、MD5 等。 2. 私钥加密实现: 使用 `...

    加密,签名

    在IT领域,加密和签名是两个非常重要的概念,它们在数据安全、数字认证以及网络通信中扮演着核心角色。本文将深入探讨这两个概念,并通过一个名为`MessageDigestExample.java`的示例代码来阐述其应用。 首先,让...

    淘宝开发文档签名_md5加密java+c#

    "淘宝开发文档签名_md5加密java+c#"这个主题涉及到的是淘宝开放平台(Taobao Open Platform, TOP)开发过程中的一个重要环节——签名机制,以及MD5加密算法在Java和C#语言中的实现。下面将详细阐述这两个知识点。 ...

    Java 的IDEA 加密算法加密和数字签名编程

    ### Java 环境下IDEA加密算法及数字签名编程详解 #### 一、加密的必要性和可探究性 随着互联网技术的飞速发展,尤其是电子商务和电子政务的普及,安全加密技术的应用变得越来越广泛。在这样的背景下,对加密技术的...

    springboot实现接口签名

    或者使用更强大的加密算法,提高安全性。 总结来说,Spring Boot实现接口签名主要涉及哈希算法的选择、签名生成与验证逻辑、以及在应用中集成验证过程。通过合理的接口签名设计和实现,可以有效保障微服务之间的...

    Java加密和数字签名编程快速入门.pdf

    Java 加密和数字签名编程快速入门 Java 加密和数字签名编程快速入门是指在 Java 中实现加密和数字签名的技术。加密是保护数据机密性的方式,而数字签名是确保消息完整性的技术。 消息摘要 消息摘要是密码学中的一...

    加密解密-Java加密和数字签名.doc

    Java加密和数字签名是网络安全领域中的重要概念,用于保护数据的隐私和完整性。在Java中,这些技术得到了广泛的应用和支持。 1. **消息摘要**: 消息摘要是一种单向散列函数,用于生成消息的固定长度表示,通常...

    java数字签名,md5大小文件验证,DES加密解密RSA加密解密,SWT浏览器插件的等源码工程实例

    Java编程语言在信息安全领域有着广泛的应用,特别是在数字签名、文件校验、加密解密等方面。以下将详细解析标题和描述中涉及的知识点,并基于提供的文件名列表进行深入讲解。 1. **Java数字签名**:数字签名是用于...

    SHA-256加密算法JAVA

    在Java中实现SHA-256加密算法,可以使用内置的`java.security.MessageDigest`类。这个过程涉及到几个关键步骤,包括创建`MessageDigest`实例、更新输入数据和获取哈希值。 首先,我们需要导入必要的Java库: ```...

    java数字签名(签名生成,用证书验证签名)

    java数字签名是指使用公钥加密技术,通过证书认证和签名验证来确保数据的安全和可靠性。数字签名的生成和验证过程 涉及到证书的申请、颁发和验证等多个方面。 在数字签名过程中,证书扮演着非常重要的角色。证书是...

    JDK8 JCE 支持256位加密

    Java Cryptography Extension (JCE) 是Java开发工具包(JDK)的一部分,它提供了解密、加密、哈希和数字签名等高级加密功能。在JDK8中,JCE(Java Cryptography Extension)的一个关键更新是它开始支持256位加密算法...

    java 加密算法的代码实现

    使用`java.security.MessageDigest`类处理MD5和SHA的摘要计算,`javax.crypto.Cipher`类实现DES、3DES和AES的加密解密,`java.security.KeyPairGenerator`和`java.security.Signature`类处理RSA的公钥私钥生成及数字...

    Java加密组件实现DES、RSA和SHA加密算法

    JCE提供了一系列接口和类,如`Cipher`用于加密和解密,`KeyGenerator`用于生成密钥,`MessageDigest`用于计算哈希值。例如,使用DES加密需要先生成DES密钥,然后创建`Cipher`实例,设置工作模式(如ECB、CBC等),再...

    java加密算法源码

    Java的`java.security.MessageDigest`类提供了这两种算法的实现。 **RSA加密算法**: RSA是一种非对称加密算法,基于大整数因子分解的困难性。它有公钥和私钥两部分,公钥用于加密,私钥用于解密。RSA在数字签名、...

    java加密、加密demo

    在IT行业中,加密和解密是信息安全领域的重要组成部分,特别是在Java编程中。本文将深入探讨Java中的加密技术,包括RSA、MD5、SHA256和SHA512等算法,以及如何通过示例(Demo)进行实际操作。 首先,让我们了解一下...

Global site tag (gtag.js) - Google Analytics