MD5是一种散列算法 是不可逆的publicstaticstring GetMD5(string sDataIn){MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();byte[] bytValue, bytHash;bytValue = System.Text.Encoding.UTF8.GetBytes(sDataIn);bytHash = md5.ComputeHash(bytValue);md5.Clear();string sTemp = "";for (int i = 0; i < bytHash.Length; i++){sTemp += bytHash[i].ToString("X").PadLeft(2, ‘0‘);}return sTemp.ToLower();}原文...
在软件开发的用户注册功能中常出现MD5加密这个概念,这个概念有一定的误导性。严格来说:MD5还有sha-1、 RIPEMD以及Haval等不能算是加密算法(虽然常用于把密码变成“密文”),他们只是散列算法,或者叫摘要算法。加密对应解密这个概念,加密算法包括:DES、3DES、IDEA、 RSA、AES等。 要弄懂这两类算法的区别,最本质的方式就是把这两类算法的步骤搞懂,但这需要大量的时间。通过两类算法的表现可以对他们的区别有个大体的了...
import java.security.MessageDigest;publicclass MD5Util {/**** MD5加密 生成32位md5码* @param 待加密字符串* @return 返回32位md5码*/publicstatic String MD5(String inStr) throws Exception {MessageDigest md5 = null;try {md5 = MessageDigest.getInstance("MD5");} catch (Exception e) {System.out.println(e.toString());e.printStackTrace();return"";}byte[] byteArray = inStr.getBytes("UTF-8");byte[] md5Bytes =...
消息摘要是把任意长度(每个人的密码的长度不一样)的输入揉和而产生长度固定的信息。? 消息摘要算法的主要特征是加密过程不需要密钥,并且经过加密的数据无法被解密,只有输入相同的明文数据经过相同的消息摘要算法才能得到相同的密文。消息摘要算法不存在密钥的管理与分发问题,适合于分布式网络上使用。消息摘要的主要特点有:无论输入的消息有多长,计算出来的消息摘要的长度总是固定的。消息摘要看起来是“随机的”。这些数据...
一、基于MD5算法对密码加密1.MD5摘要算法1.MD5信息摘要算法广泛使用的密码散列函数
2.MD5可以产生出一个128位的散列值用于唯一标识源数据
3.项目中通常使用MD5作为敏感数据的加密算法
2.MD5特点1.压缩性,MD5生成的摘要长度固定
2.抗修改,源数据哪怕只有一个字节变化,MD5也会有巨大差异
3.不可逆,无法通过MD5反向推算源数据
3.Apache Commons Codec1.Commons-Codec是Apache提供的编码/解码组件
2.通过Commons-Codec可轻易生成...
原文:http://www.open-open.com/code/view/1428398234916 import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; publicclass MD5Utils { /** * md5加密方法 * @param password * @return*/publicstatic String md5Password(String password) { try { // 得到一个信息摘要器 MessageDigest digest = MessageDigest.getInstance("md5"); byte[] result = digest.digest(password.getBytes()...
// 直接贴代码了,具体原理有很多地方都有描述,这里给出实现方便对比自己的算法到底什么地方错,算法是绝对没有问题的,计算大型文件MD5的效率还可以优化的。
struct IIStream
{
virtual size_t GetLength() = 0;
virtual size_t Read(size_t size_,unsigned char * buff_out_) = 0;
virtual bool Eof() = 0;
virtual bool Valid() = 0;
virtual void Release() = 0;
};struct IOStream
{
virtual ...
/**
* compute the the md5 of input file
* @param input file
* @return
* md5 string, or null
*/
public static String md5(File file){
try{
MessageDigest md = MessageDigest.getInstance("MD5");
InputStream fileStream = new FileInputStream(file);
byte[] buffer = new byte[1024 * 100];
int numRead = 0;
while ((numRead = fileStream.read(buffer)) > 0) {
md.update(buffer,...
一、MD5加密概述 Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。该算法的文件号为RFC 1321(R.Rivest,MIT Laboratory for Computer Science and RSA Data Security Inc. April 1992)。MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语...
如果项目中涉及到登陆注册等。此时就需要考虑密码的加密iOS下的具体实现方式如下新建一个类 继承#import <Foundation/Foundation.h>
#import <CommonCrypto/CommonDigest.h> @interface MD5 : NSObject/**
* MD5加密,传入需要加密的字符串,不可逆
*
* @param str 需要加密的字符串
*
* @return 加密后字符串
*/
+ (NSString *)md5:(NSString *)str;@end
类的实现#import "MD5.h"@implementation MD5+ (NSString *)md5:(NSStr...
private string Encrypt(string strpsw) { MD5 md5 = new MD5CryptoServiceProvider(); Byte[] data = System.Text.Encoding.Default.GetBytes(strpsw); //将字符编码为一个字节序列 byte[] md5data = md5.ComputeHash(data); //计算data字节数组的哈希值 md5.Clear(); string str = ""; for (int i = 0; i < md5d...
在很多电子商务和社区应用中,我们都要存放很多的客户的资料,其中包括了很多的隐私信息和客户不愿被别人看到的信息,当然好有客户执行各种操作的密码,此时就需要对客户的信息进行加密再存储,目前有两种比较好的加密算法:MD5和sha1。这两种加密算法都属于散列加密技术。所谓散列加密就是无论输入的字符串是什么,有多大,加密后都将变成唯一的定长的加密串。首先介绍一下MD5,MD5的全称是Message-Digest
Algorithm 5,在90年代...
MD5(单向散列算法)的全称是Message-DigestAlgorithm 5(信息-摘要算法),经MD2、MD3和MD4发展而来。MD5算法的使用不须要支付不论什么版权费用。 MD5功能: 输入随意长度的信息,经过处理,输出为128位的信息(数字指纹); 不同的输入得到的不同的结果(唯一性); 依据128位的输出结果不可能反推出输入的信息(不可逆); MD5属不属于加密算法: 觉得不属于的人是由于他们觉得不能从密文(散列值)反过来得...
标准MD5加密算法:publicclass Md5 {publicstatic String getMd5(String s) {char hexDigits[] = { ‘0‘, ‘1‘, ‘2‘, ‘3‘, ‘4‘, ‘5‘, ‘6‘, ‘7‘, ‘8‘, ‘9‘,‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, ‘f‘ };try {byte[] strTemp = s.getBytes();MessageDigest mdTemp = MessageDigest.getInstance("md5");mdTemp.update(strTemp);byte[] md = mdTemp.digest();int j = md.length;char str[] = newchar[j * 2];int k = ...
1package Util;2 3import java.security.MessageDigest;4import java.security.NoSuchAlgorithmException;5 6import sun.security.provider.MD5;7 8publicclass MD5Util {9privatestaticfinalchar[] hexDigest = newchar[]{‘0‘,‘1‘,‘2‘,‘3‘,‘4‘,‘5‘,‘6‘,‘7‘,‘8‘,‘9‘,‘A‘,‘B‘,‘C‘,‘D‘,‘E‘,‘F‘};
1011/**12 * MD5加密算法
13 * @param content
14 * @return15*/16publicstatic String m...