您的位置:首页 > 编程语言 > Java开发

java MD5加密和解密

2012-01-05 15:11 447 查看
package eoe.demo;

import java.io.BufferedReader;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.security.MessageDigest;

import java.security.NoSuchAlgorithmException;

import java.security.SecureRandom;

import javax.crypto.Cipher;

import javax.crypto.KeyGenerator;

import javax.crypto.SecretKey;

import javax.crypto.spec.SecretKeySpec;

import android.app.Activity;

import android.os.Bundle;

import android.util.Log;

public class SimpleCrypto extends Activity {

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

String s = new String( "a" );

Log.i("=aaaaa=", "原始:" + s);

Log.i("=aaaaa=", "MD5后:" + MD5(s));

Log.i("=aaaaa=", "MD5后再加密:" + KL(MD5(s)));

Log.i("=aaaaa=", "解密为MD5后的:" + JM(KL(MD5(s))));

}

// MD5加码。32位

public static String MD5(String inStr) {

MessageDigest md5 = null ;

try {

md5 = MessageDigest.getInstance("MD5" );

} catch (Exception e) {

System.out.println(e.toString());

e.printStackTrace();

return "" ;

}

char [] charArray = inStr.toCharArray();

byte [] byteArray = new byte [charArray.length];

for ( int i = 0 ; i < charArray.length; i++)

byteArray[i] = (byte ) charArray[i];

byte [] md5Bytes = md5.digest(byteArray);

StringBuffer hexValue = new StringBuffer();

for ( int i = 0 ; i < md5Bytes.length; i++) {

int val = (( int ) md5Bytes[i]) & 0xff ;

if (val < 16 )

hexValue.append("0" );

hexValue.append(Integer.toHexString(val));

}

return hexValue.toString();

}

// 可逆的加密算法

public static String KL(String inStr) {

// String s = new String(inStr);

char [] a = inStr.toCharArray();

for ( int i = 0 ; i < a.length; i++) {

a[i] = (char ) (a[i] ^ 't' );

}

String s = new String(a);

return s;

}

// 加密后解密

public static String JM(String inStr) {

char [] a = inStr.toCharArray();

for ( int i = 0 ; i < a.length; i++) {

a[i] = (char ) (a[i] ^ 't' );

}

String k = new String(a);

return k;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: