總是想整理些東西出來,但是平時工作太忙,好不容易今晚抽出點時間把之前寫的
一些小方法總結下,作爲一個引子,希望以後有時間和精力寫出真正的乾貨出來。
見笑了。
package com.rrtx.card.xpay.action;
import java.io.UnsupportedEncodingException;
import cn.jpush.api.utils.Base64;
import com.rrtx.card.encrypt.ProcessMessage;
import com.rrtx.card.util.CommonUntil;
import com.rrtx.card.xpay.util.DesUtils;
public class myWayTest {
/**
* 解密
* @param encStr
* @throws Exception
*/
public static void des (String encStr) throws Exception{
DesUtils des = DesUtils.getInstance();
String key = "ad?<>[]=+-12.,';";
byte[] k = key.getBytes();
char[] encByte = encStr.toCharArray();
byte[] dec = des.decrypt(Base64.decode(encByte), k, null);
String decStr = new String(dec);
System.out.println("解密後的數據"+decStr);
}
/**
* 加密
* @param password
* @return
* @throws Exception
*/
public static String jiami(String password) throws Exception {
DesUtils des = DesUtils.getInstance();
// 此處爲密匙
String key = "ad?<>[]=+-12.,';";
// String key = "wangpeng";
// 將密碼和密匙轉換爲byte數組
byte[] pwd = password.getBytes();
byte[] k = key.getBytes();
// 加密
byte[] enc = des.encrypt(pwd, k, null);
System.out.println("加密後的byte數據: "+enc);
String encStr = new String(Base64.encode(enc));
System.out.println("加密後的字符串數據: "+ encStr);
return encStr;
}
/**
* 加密加解密
* @throws Exception
*/
public static void ss () throws Exception {
DesUtils des = DesUtils.getInstance();
String password = "123456";
// 此處爲密匙
String key = "ad?<>[]=+-12.,';";
// String key = "wangpeng";
// 將密碼和密匙轉換爲byte數組
byte[] pwd = password.getBytes();
byte[] k = key.getBytes();
// 加密
byte[] enc = des.encrypt(pwd, k, null);
System.out.println("加密後的byte數據: "+enc);
String encStr = new String(Base64.encode(enc));
System.out.println("加密後的字符串數據: "+ encStr);
/***************解密**********************/
//encStr = tes.decode(encStr);
char[] encByte = encStr.toCharArray();
byte[] dec = des.decrypt(Base64.decode(encByte), k, null);
String decStr = new String(dec);
System.out.println("解密後的數據"+decStr);
}
/**
* 對漢字或字符串進行編碼再解碼
* @param name
*/
public static void encodeAndDecode (String name) {
if (CommonUntil.isEmpty(name)) {
name = "測試王";
}
try {
// 編碼
String encodeName = java.net.URLEncoder.encode(name, "UTF-8");
System.out.println(encodeName);
// 解碼
String decodeName = java.net.URLDecoder.decode(encodeName, "UTF-8");
System.out.println(decodeName);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
public static void signAndCheckSign (String transdata ) {
byte[] signData1 = new byte[2048];
if (CommonUntil.isEmpty(transdata)) {
transdata = "123456";
}
signData1 = ProcessMessage.signMessage(transdata, "D:/ruirong/apache-tomcat-6.0.37/webapps/xpay/cert/private.pfx",
"rrtx1234");
String signData = new String(signData1);
System.out.println("簽名後的字符串 signData :" + signData);
System.out.println("簽名成功");
String k = "MIIDmjCCAoKgAwIBAgIJALbVA79lN8LfMA0GCSqGSIb3DQEBCwUAMGIxCzAJBgNV"+
"BAYTAkNOMQ8wDQYDVQQIDAZzaGFueGkxDzANBgNVBAcMBnNoYW54aTEPMA0GA1UE"+
"CgwGd3V6aG91MQ8wDQYDVQQLDAZ3dXpob3UxDzANBgNVBAMMBnd1emhvdTAeFw0x"+
"NzA5MDYwODA2MjVaFw0xODA5MDYwODA2MjVaMGIxCzAJBgNVBAYTAkNOMQ8wDQYD"+
"VQQIDAZzaGFueGkxDzANBgNVBAcMBnNoYW54aTEPMA0GA1UECgwGd3V6aG91MQ8w"+
"DQYDVQQLDAZ3dXpob3UxDzANBgNVBAMMBnd1emhvdTCCASIwDQYJKoZIhvcNAQEB"+
"BQADggEPADCCAQoCggEBAMYkp8/nxLjXhSIzss/ba1hpxN4spdRWrEYxqniIr379"+
"0zZd0YjlPiXgag4FzhZSNOxTeq35msNyeeLUsKt6Ym01MTqaDnsUKNGF0qnIPIHy"+
"AyWoMXwBy6Cwr/+NlClkkZocV3aKrFvj0EXC9HmFfExfgdWTebyQJfCMBghGGplq"+
"Dz6P5rA1cSXUR1H9ZQuePzF+SSMErOpXsIk/De7qG6stzZgQslA9RYIkwjGpy6vU"+
"OvZNXqGM1cTyQwA7jK8gVY1G6uP3YcZfeQylFabiijCmerj/e6qQeeK9sP5c5Ug7"+
"KHePf8LA8yial+ycTY60TIpVdjs9xki3X0b9VpYEJXUCAwEAAaNTMFEwHQYDVR0O"+
"BBYEFNzkD9rY3iO8IfTw/9GFs6o/Q5eZMB8GA1UdIwQYMBaAFNzkD9rY3iO8IfTw"+
"/9GFs6o/Q5eZMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAMP3"+
"0YARHg2rulB8uKLHsLrF4CCBxBpZklSgB3Ea13ARcoJhTgdF0+/ieK3pU1sG9PhV"+
"Z5jWB8y8XZnbI5PPPlGZx3THBim/i7J0RsSPaYYz3+QUFR0V9k5UhDlV3vji4PzZ"+
"CD0vRDTAppxJmNdxbn6EpLg2fZ7ZfiKoRhLyNnu5bQKt/TWaKnxVUZ48jvs9mbOH"+
"pT1WNtIuONpaGEnsCuGtJiEX3K3qIBMQrULKc+Ooj71WtpmigcoT1NPeP1EHDukY"+
"IhLMTo4kYLtZMbG9CE0XMgtH2+26rTGo6E7vt3DUAB48sZ8bvQ45ICeOuMt1HT1v"+
"iw0JZappRwd+41LwyIY=";
Boolean flag = ProcessMessage.verifyMessage(transdata, signData, k.getBytes());
if(flag){
// 說明驗籤成功,將數據返回到PrepaidCardAction
// return null;
System.out.println("驗籤成功");
} else{
// 驗籤失敗
System.out.println("驗籤失敗");
}
}
public static void main (String[] args) throws Exception {
signAndCheckSign("456789");
// 加密
String encStr = jiami("123456");
// 解密
des(encStr);
// 加密+解密
// ss();
// 解密
// des("M6HWbg4kLZw=");
// 編碼加解碼
encodeAndDecode("王朋朋");
}
}