`
貌似掉线
  • 浏览: 260081 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

MD5加密封装

MD5 
阅读更多
/*
 * @(#)DigestUtil.java		       Project:com.sinaapp.msdxblog.androidkit
 * Date:2012-12-18
 *
 * Copyright (c) 2011 CFuture09, Institute of Software, 
 * Guangdong Ocean University, Zhanjiang, GuangDong, China.
 * All rights reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.lurencun.cfuture09.commons.security;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
 * @author Geek_Soledad (66704238@51uc.com)
 */
public class DigestUtil {
	/**
	 * 获取一个字符串加密后的16进制值
	 * 
	 * @param algorithm
	 *            摘要算法
	 * @param message
	 *            进行加密的String对象
	 * 
	 * @return String 计算后的结果
	 */
	public static String doDigest(String algorithm, String message) {
		return doDigest(algorithm, message.getBytes());
	}

	/**
	 * 获取一个字符串加密后的16进制值
	 * 
	 * @param algorithm
	 *            摘要算法
	 * @param message
	 *            进行加密的byte数组
	 * 
	 * @return String 计算后的结果
	 */
	public static String doDigest(String algorithm, byte[] message) {
		MessageDigest md = null;
		try {
			md = MessageDigest.getInstance(algorithm);
		} catch (NoSuchAlgorithmException e) {
			e.printStackTrace();
		}

		byte[] result = md.digest(message);
		return StringUtil.bytesToHexString(result);
	}

	/**
	 * 获取一个字符串加密后的16进制值
	 * 
	 * @param algorithm
	 *            摘要算法名称
	 * @param message
	 *            进行加密的byte数组
	 * 
	 * @return String 计算后的结果
	 */
	public static String doDigest(String algorithm, char[] message) {
		return doDigest(algorithm, new String(message));
	}
}

/*
 * @(#)StringUtil.java		       Project:com.sinaapp.msdxblog.androidkit
 * Date:2012-12-18
 *
 * Copyright (c) 2011 CFuture09, Institute of Software, 
 * Guangdong Ocean University, Zhanjiang, GuangDong, China.
 * All rights reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.lurencun.cfuture09.commons.security;

/**
 * @author Geek_Soledad (66704238@51uc.com)
 */
public class StringUtil {

	/**
	 * byte[]数组转换为16进制的字符串。
	 * 
	 * @param data
	 *            要转换的字节数组。
	 * @return 转换后的结果。
	 */
	public static final String bytesToHexString(byte[] data) {
		StringBuilder valueHex = new StringBuilder();
		for (int i = 0, tmp; i < data.length; i++) {
			tmp = data[i] & 0xff;
			if (tmp < 16) {
				valueHex.append(0);
			}
			valueHex.append(Integer.toHexString(tmp));
		}
		return valueHex.toString();
	}
	
	/**
	 * 16进制表示的字符串转换为字节数组。
	 * 
	 * @param hexString
	 *            16进制表示的字符串
	 * @return byte[] 字节数组
	 */
	public static byte[] hexStringToBytes(String hexString) {
		if (hexString == null || hexString.equals("")) {
			return null;
		}
		hexString = hexString.toUpperCase();
		char[] hexChars = hexString.toCharArray();
		int length = hexString.length();
		byte[] d = new byte[length >>> 1];
		for (int n = 0; n < length; n += 2) {
			String item = new String(hexChars, n, 2);
			// 两位一组,表示一个字节,把这样表示的16进制字符串,还原成一个进制字节
			d[n >>> 1] = (byte) Integer.parseInt(item, 16);
		}
		return d;
	}
}
0
2
分享到:
评论

相关推荐

    md5加密封装

    在C或C++中实现MD5加密技术,通常会涉及以下几个关键步骤: 1. **数据预处理**:MD5算法首先对输入数据进行预处理,包括填充至56个字节的倍数,添加长度信息,并进行位反转。 2. **初始化MD5状态**:设置四个32位...

    C++ MD5加密封装类

    下面我们将详细讨论C++实现MD5加密封装类的相关知识点。 1. **MD5基本原理**: - MD5算法由Ronald L. Rivest在1991年设计,它将任意长度的输入(又叫做预映射)通过一系列的数学运算,转换成固定长度的输出,这个...

    Md5加密封装代码

    这个标题"Md5加密封装代码"表明我们将讨论一个已经封装好的C++类,该类提供了对MD5哈希计算的接口,使得在程序中调用MD5算法变得更加简单。 在描述中提到,附件包含了一个`.h`头文件和一个`.cpp`源文件,这通常意味...

    python超级方便且安全的md5加密,以封装。

    python超级方便的md5加密,以封装。md5的值是不能反解的,那怎么判断现在的输入和数据库中加密的内容一致呢,只能将现在的输入加密,拿加密后的md5值和数据库中的md5值做判断,md5或许可以被黑客暴力破解

    MD5加密方法封装

    MD5加密封装 简单实用! 希望可以帮助各位大侠!!

    md5加密jar包

    MD5加密jar包是将MD5算法封装到Java程序中的库,方便开发者在Java应用中快速实现MD5加密功能。 MD5的特点: 1. **不可逆性**:MD5算法是单向的,即给定一个输入,可以得到一个固定长度的摘要,但不能通过摘要反推出...

    Oracle实现MD5加密

    对于更复杂的应用场景,可能需要创建自定义的PL/SQL包来封装MD5加密逻辑。这不仅允许更加灵活地控制加密过程,还可以将加密功能集成到数据库的业务逻辑中,提高系统的整体安全性。以下是一个创建自定义MD5加密包的...

    Delphi实现MD5加密

    这些库通常提供了封装好的函数,如`MD5String`或`CalculateMD5`,可以直接接受字符串作为输入,返回MD5哈希值。例如,`dcutils`库的`THashMD5`类提供了`GetHashOf`方法,可以对字符串进行MD5哈希计算。 3. **使用...

    MD5加密32位小写

    然而,由于其存在碰撞漏洞(即不同的输入可能会产生相同的输出),MD5现在更多地被用于验证文件完整性,而非敏感数据的加密。 在Java中实现MD5加密通常涉及以下步骤: 1. 引入库:Java标准库提供`java.security....

    MD5加密算法的VB6.0类模块实例.doc

    该类模块实例将MD5加密算法封装在一个VB6.0类模块中,使得开发者能够方便地使用MD5加密算法来实现文本字符串的加密和文件的加密。 类模块代码解析 该类模块代码主要包括以下几个部分: 1. 常量定义:该类模块定义...

    MD5加密demo

    自封装的jar包可能是作者为了方便其他人使用而打包的,包含了MD5加密的所有功能,用户可以直接导入到自己的项目中,无需关心内部实现细节。 6. **使用MD5加密的步骤**: - 初始化`MessageDigest`对象,指定算法为...

    Md5加密jar包

    在Java中,MD5加密可以通过特定的库或API来实现,这些库或API通常封装了MD5的计算过程,使得开发者能够方便地对字符串或其他数据进行加密。 "Md5加密jar包"可能包含了两种不同的MD5加密实现,这可能是因为每个jar包...

    易语言偷懒实现md5加密

    在"易语言偷懒实现md5加密"的源码中,可能已经封装了上述过程,简化了开发者的工作。使用时,只需调用相应的函数,传入需要加密的字符串,即可得到对应的MD5值。这种实现方式通常会隐藏底层的复杂性,让开发者更专注...

    powerbuilder MD5加密示例含MD5.DLL

    MD5.DLL是MD5加密算法的一个动态链接库,它封装了MD5的计算逻辑,供应用程序调用。在PowerBuilder中,我们可以通过引入外部DLL的方式来利用这些功能。以下是一个详细的步骤和知识点: 1. **引入MD5.DLL**:在Power...

    vb中,md5加密程序封装

    vb中,md5加密程序封装德国大使馆是大方过是德国

    加密解密md5的js封装代码

    例如,这里有一个简单的MD5加密的JS封装代码示例,来自于`md5.js`文件: ```javascript function md5(str) { // 引入MD5算法 const CryptoJS = require('crypto-js'); // 使用MD5算法对字符串进行加密 const ...

    android用MD5加密解密demo

    在实际的Android项目中,可以创建一个工具类,封装上述MD5加密方法,方便在各个地方调用。在`MD5`这个压缩包文件中,可能就包含了一个这样的工具类示例,包含了加密和验证MD5的方法。 总的来说,Android应用中的MD5...

    C#winformMD5加密案例

    为了使代码更易读,可以将MD5加密封装到一个单独的方法中,例如: ```csharp public string GetMD5Hash(string input) { MD5 md5 = MD5.Create(); byte[] inputBytes = Encoding.UTF8.GetBytes(input); byte[] ...

    可用的jsp的MD5加密的javaBean

    在标题提到的"可用的jsp的MD5加密的javaBean",我们可以理解为这是一个专门用于在JSP(JavaServer Pages)环境中处理MD5加密的Java类。开发者可能在寻找如何在JSP中对用户输入的数据进行MD5加密,例如密码,以提高...

Global site tag (gtag.js) - Google Analytics