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;
}
}
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;
}
}
相关文章推荐
- Java的MD5加密和解密
- JAVA的MD5加密与解密
- java采用MD5加密解密
- JAVA的MD5加密与解密
- java MD5加密解密
- JAVA的MD5加密与解密
- java加密解密_____MD5加密(用户名映射(用户名和密码)串)唯一性
- java MD5加密解密
- java的md5加密解密
- Java的MD5加密解密
- java 实现md5加密的三种方式与解密
- java 采用MD5加密解密
- java的DES加密、解密和MD5加密
- java实现DES加密与解密,md5加密
- Java的MD5加密和解密
- java 采用MD5加密解密
- java 采用MD5加密解密
- Java实现MD5加密及解密的代码实例分享
- java的MD5加密、解密