在javaweb项目中进行MD5加密

这篇博客探讨了在JavaWeb项目中如何使用MD5进行数据加密。文章提到,由于目前没有有效的公开MD5解密算法,加密后的数据通常难以被逆向解密,因此MD5常用于存储密码等敏感信息。
摘要由CSDN通过智能技术生成

加密的java类:

MD5keyBean.java

package cn.itcast.elec.util;

/*******************************************************************************
 * keyBean 类实现了RSA Data Security, Inc.在提交给IETF 的RFC1321中的keyBean message-digest
 * 算法。
 ******************************************************************************/
public class MD5keyBean {
	/*
	 * 下面这些S11-S44实际上是一个4*4的矩阵,在原始的C实现中是用#define 实现的, 这里把它们实现成为static
	 * final是表示了只读,切能在同一个进程空间内的多个 Instance间共享
	 */
	static final int S11 = 7;
	static final int S12 = 12;
	static final int S13 = 17;
	static final int S14 = 22;
	static final int S21 = 5;
	static final int S22 = 9;
	static final int S23 = 14;
	static final int S24 = 20;
	static final int S31 = 4;
	static final int S32 = 11;
	static final int S33 = 16;
	static final int S34 = 23;
	static final int S41 = 6;
	static final int S42 = 10;
	static final int S43 = 15;
	static final int S44 = 21;
	static final byte[] PADDING = { -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
			0, 0, 0, 0, 0, 0, 0 };
	/*
	 * 下面的三个成员是keyBean计算过程中用到的3个核心数据,在原始的C实现中 被定义到keyBean_CTX结构中
	 */
	private long[] state = new long[4]; // state (ABCD)
	private long[] count = new long[2]; // number of bits, modulo 2^64 (lsb
										// first)
	private byte[] buffer = new byte[64]; // input buffer
	/*
	 * digestHexStr是keyBean的唯一一个公共成员,是最新一次计算结果的 16进制ASCII表示.
	 */

	public String digestHexStr;
	/*
	 * digest,是最新一次计算结果的2进制内部表示,表示128bit的keyBean值.
	 */
	private byte[] digest = new byte[16];

	/*
	 * getkeyBeanofStr是类keyBean最主要的公共方法,入口参数是你想要进行keyBean变换的字符串
	 * 返回的是变换完的结果,这个结果是从公共成员digestHexStr取得的.
	 */
	public String getkeyBeanofStr(String inbuf) {
		keyBeanInit();
		keyBeanUpdate(inbuf.getBytes(), inbuf.length());
		keyBeanFinal();
		digestHexStr = "";
		for (int i = 0; i < 16; i++) {
			digestHexStr += byteHEX(digest[i]);
		}
		return digestHexStr;
	}

	// 这是keyBean这个类的标准构造函数,JavaBean要求有一个public的并且没有参数的构造函数
	public MD5keyBean() {
		keyBeanInit();
		return;
	}

	/* keyBeanInit是一个初始化函数,初始化核心变量,装入标准的幻数 */
	private void keyBeanInit() {
		count[0] = 0L;
		count[1] = 0L
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值