`

java——MD5加密算法(含验证)

阅读更多
package date;

import java.security.MessageDigest;

public class Password {
/** 十六进制下数字到字符的映射数组 */
private final static String[] hexDigits = { "0", "1", "2", "3", "4", "5",
"6", "7", "8", "9", "a", "b", "c", "d", "e", "f" };

/**
*
* 对input加密生成新密码
*
* @param inputString
*            待加密的字符串
* @return
*/
public static String createPassword(String inputString) {
return encodeByMD5(inputString);
}

/**
*
* 验证输入密码是否正确
*
* @param password
*            加密后的密码
* @param inputString
*            输入的明文密码
* @return
*/
public static boolean authenticatePassword(String password,
String inputString) {
if (password.equals(encodeByMD5(inputString))) {
return true;
} else {
return false;
}
}

/**
*
* 对字符串进行md5编码
*
* @param originString
* @return
*/
private static String encodeByMD5(String originString) {
if (originString != null) {
try {
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] results = md.digest(originString.getBytes());
String resultString = byteArrayToHexString(results);
return resultString.toUpperCase();
} catch (Exception ex) {
ex.printStackTrace();
}
}
return null;
}

/**
*
* 转换字节数组为十六进制字符串
*
* @param b
*            字节数组
* @return 十六进制字符串
*/
private static String byteArrayToHexString(byte[] b) {
StringBuffer resultSb = new StringBuffer();
for (int i = 0; i < b.length; i++) {
resultSb.append(byteToHexString(b[i]));
}
return resultSb.toString();
}

/**
* 转换一个字节为十六进制
*
* @param b
*            单个字节
* @return
*/
private static String byteToHexString(byte b) {
int n = b;
if (n < 0) {
n = 256 + n;
}
int d1 = n / 16;
int d2 = n % 16;
return hexDigits[d1] + hexDigits[d2];
}

public static void main(String args[]){


String password=Password.createPassword("945896808");

System.out.println(password);

System.out.println("对945896808加密后是否匹配"+Password.authenticatePassword(password, "945896808"));

System.out.println("加密后是否匹配"+Password.authenticatePassword(password, "888888888"));
}

}
分享到:
评论

相关推荐

    java常用几种加密算法

    ### Java常用几种加密算法 在Java开发中,数据的...以上就是关于Java中常用的几种加密算法——MD5、SHA及RSA的基本介绍和应用示例。通过理解这些加密算法的工作原理和应用场景,可以帮助开发者更好地保护数据安全。

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

    需要注意的是,由于MD5的碰撞问题,现在在安全领域,MD5已经不被视为安全的加密算法,更推荐使用如SHA-256或更强的哈希函数。在处理敏感信息,尤其是用户密码时,通常会结合盐值(salt)和多次迭代来提高安全性,...

    JAVA上加密算法的实现用例.rar_java 加密_加密_加密算法 java

    Java提供了一个强大的加密框架——Java Cryptography Extension (JCE),它包含了各种加密算法的实现,如AES、DES、RSA等。此外,Java Standard Edition (Java SE) 还内置了java.security包,包含加密相关的类和接口...

    MD5加密依赖包commons-codec-1.11.jar

    `commons-codec-1.11.jar`是Apache Commons Codec库的一个版本,这个库提供了多种编码和解码功能,包括电话号码编码、URL编码、Base64编码、以及我们的关注点——MD5哈希函数。Apache Commons Codec是一个Java类库,...

    加密算法大全 C++和Java

    **哈希函数**,如MD5和SHA系列,不是加密算法,但它们在信息安全中同样重要。哈希函数将任意长度的输入转化为固定长度的输出,常用于密码存储、消息完整性检查等。Java中,java.security.MessageDigest类提供了MD5和...

    java各种加密算法

    本文将深入探讨在Java中实现的多种加密算法,包括数字签名、MD5、SHA、DES以及DSA等,旨在为读者提供一个全面而深入的理解。 ### 数字签名(Digital Signature) 数字签名是一种用于验证数据完整性和发送者身份的...

    Java经典算法--加密算法

    ### Java经典算法——加密算法详解 #### 一、概述 在现代信息技术中,加密技术扮演着至关重要的角色,尤其是在保障数据安全与隐私方面。本文将详细介绍几种常用的加密算法及其在Java中的实现方式。 #### 二、对称...

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

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

    Java Cryptography

    不仅介绍了加密算法的分类,如流加密和块加密,还详细解析了Java中的加密API,尤其是javax.crypto.Cipher类的使用方法。此外,书中还介绍了混合加密系统的原理,即结合对称加密与非对称加密的系统,以提高整体的安全...

    JAVA上加密算法的实现用例

    在Java平台上,加密算法的实现是安全编程的重要组成部分,它涉及到数据保护、隐私维护以及网络安全。本文将深入探讨Java中几种常见的加密算法及其应用案例。 首先,Java提供了强大的`javax.crypto`包,它包含了多种...

    使用java实现数据加密算法

    ### 使用Java实现数据加密算法详解 #### 一、基础知识概览 ##### 1.1 单钥密码体制 单钥密码体制,又称对称加密,是一种广泛应用的传统加密方式。其核心在于加密和解密过程中使用相同的密钥。这种方式的优点包括...

    java加密算法,数字签名。

    Java加密算法和数字签名在IT领域中扮演着至关重要的角色,尤其在网络安全、数据保护以及身份验证方面。本文将深入探讨这些概念,并结合提供的标签MD5、Base64、RSA和DES,阐述它们在实际应用中的工作原理和使用场景...

    Java中4大基本加密算法解析

    本文将详细介绍四种常见的加密算法——BASE64、MD5、SHA以及HMAC,并提供相应的Java实现示例。 #### 二、BASE64 **BASE64** 是一种编码格式,而不是加密算法。它的主要作用是将二进制数据转换为文本格式以便在网络...

    MD5加密与解密艺术

    总结起来,“MD5加密与解密艺术”可能涉及MD5的基本概念、加密过程、在Java中的实现方式,以及MD5在密码学中的应用和安全问题。对于学习者来说,理解MD5的工作原理、掌握其在Java中的实现,以及认识到其安全性的局限...

    java 文字加密实例

    3. **哈希函数**:虽然不被视为真正的加密算法,因为它们是不可逆的,但哈希函数在密码学中有着重要的应用,如MD5、SHA系列等。 #### Java中的加密实现 Java提供了一个强大的加密框架——Java Cryptography ...

    DiDiCallCar,这是我自己做的一个类似滴滴打车的 Android 出行项目,主要针对滴滴等出行平台一直饱受质疑的“人车不符”问题,以及当前越发火热的或计划和出海战略,给出行项目增加了下面几个功能: 1. RFID 识别验证功能:在司机证件或者车内识别硬件嵌入 RFID 识别芯片,乘客使用手机读取到芯片信息,并且通过网络发送到出行平台数据库进行验证(我用 JNI 加了一个 C 语言的 MD5 加密算法对识别到的信息进行了加密)。如果不是合规的“人”或“车”,则不能完成订单并向平台或监管单位汇报当前

    当乘客上车后,他们可以使用手机读取这些芯片,获取的RFID信息经过C语言实现的MD5加密算法处理,然后通过网络发送到出行平台的数据库进行验证。MD5加密是一种广泛用于数据完整性和保密性的哈希函数,可以确保信息在...

    SSH验证及加密

    2. `MD5Util.java`: 这个文件可能提供了MD5加密的工具类,包括计算字符串的MD5散列值、验证MD5散列等方法。 3. `SSHConnection.java`: 可能是用于建立SSH连接的类,包含了与SSH服务器的交互逻辑,如初始化SSH会话、...

    pb和java对称base64加密解密

    同时,描述中提到了MD5加密,这又是一种常见的哈希加密算法。下面我们将详细探讨这些知识点。 1. **Base64编码**:Base64是一种用于将二进制数据转换为ASCII字符串的编码方法,以便在网络上传输或者在某些只能处理...

    基于java的很强的加密解密算法源码.zip

    2. **RSA加密算法**:RSA是一种非对称加密算法,由两个密钥——公钥和私钥组成。公钥用于加密,私钥用于解密。在Java中,`java.security`和`javax.crypto`包提供了RSA的实现。`KeyPairGenerator`用于生成密钥对,`...

Global site tag (gtag.js) - Google Analytics