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中实现SHA1加密,是确保数据安全性和完整性的一个常见做法,尤其在与微信支付接口交互时,为了保证交易的安全,会要求使用SHA1进行签名。 SHA1全称为Secure Hash Algorithm 1,它是由美国国家安全局(NSA)...
首先,SM2算法是一种基于椭圆曲线密码学(ECC)的公钥加密算法,它提供了非对称加密、数字签名和密钥交换等功能。在Java中实现SM2算法,通常需要处理椭圆曲线参数、点运算等复杂计算。这包括生成一对SM2密钥(公钥和...
Java 提供了多种加密算法和数字签名算法的实现,例如 `MessageDigest`、`Cipher` 等类。 1. 消息摘要算法实现: 使用 `MessageDigest` 类可以实现消息摘要算法,例如 SHA-1、MD5 等。 2. 私钥加密实现: 使用 `...
在IT领域,加密和签名是两个非常重要的概念,它们在数据安全、数字认证以及网络通信中扮演着核心角色。本文将深入探讨这两个概念,并通过一个名为`MessageDigestExample.java`的示例代码来阐述其应用。 首先,让...
"淘宝开发文档签名_md5加密java+c#"这个主题涉及到的是淘宝开放平台(Taobao Open Platform, TOP)开发过程中的一个重要环节——签名机制,以及MD5加密算法在Java和C#语言中的实现。下面将详细阐述这两个知识点。 ...
### Java 环境下IDEA加密算法及数字签名编程详解 #### 一、加密的必要性和可探究性 随着互联网技术的飞速发展,尤其是电子商务和电子政务的普及,安全加密技术的应用变得越来越广泛。在这样的背景下,对加密技术的...
或者使用更强大的加密算法,提高安全性。 总结来说,Spring Boot实现接口签名主要涉及哈希算法的选择、签名生成与验证逻辑、以及在应用中集成验证过程。通过合理的接口签名设计和实现,可以有效保障微服务之间的...
Java 加密和数字签名编程快速入门 Java 加密和数字签名编程快速入门是指在 Java 中实现加密和数字签名的技术。加密是保护数据机密性的方式,而数字签名是确保消息完整性的技术。 消息摘要 消息摘要是密码学中的一...
Java加密和数字签名是网络安全领域中的重要概念,用于保护数据的隐私和完整性。在Java中,这些技术得到了广泛的应用和支持。 1. **消息摘要**: 消息摘要是一种单向散列函数,用于生成消息的固定长度表示,通常...
Java编程语言在信息安全领域有着广泛的应用,特别是在数字签名、文件校验、加密解密等方面。以下将详细解析标题和描述中涉及的知识点,并基于提供的文件名列表进行深入讲解。 1. **Java数字签名**:数字签名是用于...
Java 加密是指使用 Java 语言来实现数据加密、解密和数字签名等操作。数据加密是指将明文数据转换为难以理解的密文,以保护数据的机密性和完整性。Java 提供了多种加密方式,本文将介绍四种常用的加密方式:MD5、...
在Java中实现SHA-256加密算法,可以使用内置的`java.security.MessageDigest`类。这个过程涉及到几个关键步骤,包括创建`MessageDigest`实例、更新输入数据和获取哈希值。 首先,我们需要导入必要的Java库: ```...
综上所述,Java中的国密算法实现涉及多个步骤和技术,包括但不限于密钥管理、加密解密、哈希计算、签名验证以及证书处理。开发者需要熟悉相关API和库,以正确地集成这些功能到他们的项目中。在实际开发过程中,还要...
Java Cryptography Extension (JCE) 是Java开发工具包(JDK)的一部分,它提供了解密、加密、哈希和数字签名等高级加密功能。在JDK8中,JCE(Java Cryptography Extension)的一个关键更新是它开始支持256位加密算法...
总的来说,基于Java的类PGP文件加密传输系统利用了Java的安全特性,如加密库和数字签名,实现了类似PGP的文件加密、签名和传输功能,确保了数据在传输过程中的隐私和完整性。通过这样的系统,用户可以更安心地进行...
然而,由于其存在碰撞漏洞(即不同的输入可能会产生相同的输出),MD5现在更多地被用于验证文件完整性,而非敏感数据的加密。 在Java中实现MD5加密通常涉及以下步骤: 1. 引入库:Java标准库提供`java.security....