![JAR search and dependency download from the Maven repository](/logo.png)
com.xwc1125.common.crypto.rsa.RSATest2 Maven / Gradle / Ivy
The newest version!
package com.xwc1125.common.crypto.rsa;
import java.net.URLDecoder;
import java.util.Map;
/**
* @ClassName RSATester
* @Description TODO(describe the types)
* @author xwc1125
* @date 2016年1月11日 下午12:47:22
*/
public class RSATest2 {
static String publicKey;
static String privateKey;
static {
try {
Map keyMap = RSAUtils.genKeyPair();
publicKey = RSAUtils.getPublicKey(keyMap);
privateKey = RSAUtils.getPrivateKey(keyMap);
System.err.println("公钥: \n\r" + publicKey);
System.err.println("公钥长度: \n\r" + publicKey.length());
System.err.println("私钥: \n\r" + privateKey);
System.err.println("私钥长度: \n\r" + privateKey.length());
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws Exception {
test();
// testSign();
// test2();
// testSign2();
// test3();
}
/**
*
* Description: TODO(describe the methods)
*
*
*
*
*
* @author xwc1125
* @date 2017年9月6日 上午9:37:35
*/
private static void test3() {
String en_by_private = "7654DFEB420C3E11E7E42C90506D7076203A790420AC6F5890AD6E887B00C65D9BE496137C9F9736646CB77BEF8F0513D6A98C59B7CBBE9721B79BC38A39F69166EE213F84AAA50448BE7A09A2C6A87E48C80D1D509D94BEFF0435232ACA4ECF18A742DA44375C3173A699A5A44BAF1BFA0A567DFF3648F51B14FB3ACC60F41226D9B4C7F61FB94FDDA2F2A765E4D23EB198DFB93466C9E26897BACBA5C7C85AA3AD690A9D8DD001580A79581E1621355DB823311B0D2C662C13F1224AB1B575184A018A393EA1F5559851EE2D5540565AC17A328628F84D530D609751B96A709B4A6522AE24D50782F56F33011CFC3AB61598406C30959A7D298CB9FEAEF76F5BC82450AF496A9A92B381BD3A85190B3B1621A54AAB0376133798C990D0BBE231D2EE7D9B9ECFD5965D88803F3573C09B27C777B59DBE0CB65E3A6805282395B41E6A31DDF87DD416FE57E7AA256890B66A276E052791546E509BDECB975102ACACFA513155249753A9463C2862D93144F1637961DA6D0C3D6960D63528987B7E59D493EE631402423B3922BA44E895E0BB042E4208200766D187D68F579546DE0E2A1A34754E125756933E3E89B78830260406D3699F632DE06D8ECF05CB9B7F5CD2BC08240A58F4F91D107B00E3F556E277DDEBF9E91114C78FC9CC836335ADE3957EF885A9003BB463C4516113BAF5BE1AC85CF2E1586E9F8A22AED2C6540CF0401CEC76F28766414E1E6D8C1D87B5A7B5BD75DB9DAA42314A6F5158DDBCE07F07466FF5C2CA455D5F37ABDAAA01F07402771C845CD8066CC53D44FC0F71F56335211DD3826CF52B20A111B71365359C472FB8406364A56B44680712C63B953D50546641A65CE919382419E2639E1E61D9C739F7720E06B5DBAB8FF91CCF";
String publicPrivateKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCBYTyIdVpWI7Dh1BBFZq/GQ7lZVpivMLH8LX1aMTUsg4O4o7izs/f1m4C4FnccSiCo0qRC/wEKAO2JB/Rp2vfNAJEI97Srd3v28ldBEacrVEOZpl93nvkRvahdyGN4xLUtckF+8KKXyu4f+0oxRtYo9i5pYDzWYj+5v3hPPCZy4wIDAQAB";
try {
String de_biz_content = RSAUtils.decryptByPublicKeyFromBCD(en_by_private, publicPrivateKey, "");
System.out.println(de_biz_content);
de_biz_content = URLDecoder.decode(de_biz_content);
} catch (Exception e) {
e.printStackTrace();
}
}
static void test() throws Exception {
System.err.println("==================test1()=================");
System.out.println("公钥加密——私钥解密");
String source = "这是一行没有任何意义的文字,你看完了等于没看,不是吗?";
System.out.println("\r加密前文字:\r\n" + source);
byte[] data = source.getBytes();
byte[] encodedData = RSAUtils.encryptByPublicKey(data, publicKey);
System.out.println("加密后文字:\r\n" + new String(encodedData));
byte[] decodedData = RSAUtils.decryptByPrivateKey(encodedData, privateKey);
String target = new String(decodedData);
System.out.println("解密后文字: \r\n" + target);
System.err.println("==================test()结束=================");
}
static void test2() throws Exception {
System.err.println("==================test2()=================");
System.out.println("公钥加密——私钥解密");
String source = "这是一行没有任何意义的文字,你看完了等于没看,不是吗?";
System.out.println("\r加密前文字:\r\n" + source);
source = "0s0D_l~bEPehHT0T";
publicKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDS5suSMO4kJCLX7YojpJYOeZGhCGl09zoxCnLJC3qiex" +
"Fy7G7TLZLrEOAGIqBmABVi6sVYynWi19vdy18cWZnjLHG8JJSw36V9pmWBWiIoV4Lj1EpEhKazEDz0h6WP" +
"Wa40gYOE2Pi0GCuaHIiHohFmrrJ2IGVdOfH5YJsduQohUwIDAQAB";
privateKey = "MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBANLmy5"
+ "Iw7iQkItftiiOklg55kaEIaXT3OjEKcskLeqJ7EXLsbtMtkusQ4AYioGYAFWLqxVjKdaL"
+ "X293LXxxZmeMscbwklLDfpX2mZYFaIihXguPUSkSEprMQPPSHpY9ZrjSBg4TY+LQYK5o"
+ "ciIeiEWausnYgZV058flgmx25CiFTAgMBAAECgYEAo64JijE9cYE2JZ0um9ENwLgrBO6"
+ "RYfzKBeuVAGFPUTDwbt/+dxkksBkNtNVE5UTlVDre5LVkrPiYpD9FVqxXmCZQx0xowUX"
+ "vHxt/5CCchC40LDno7YYHJ4hsG7bJgxldBOELiANkhJQU4tsecM9+Fvwn69u+bnWYsiV"
+ "PSnuEk4kCQQDti8F3RT5ASIhKWHgIGK2MXlV4qyp/HVosguYtpW5qtbct+puwmAkRmxu"
+ "xACcSrjBFyikZvh9V6luUOuquqELVAkEA40kk0s6PnWnOzDL3yuY6isHasedUc5E9yxd"
+ "noTVDknTFeIlLAdTMLk29YSH+X8otiP/Ge2pVuPNPHEJngHbXhwJBAMRWdxm1ybYoPT3"
+ "10YAfpZIXhl2uW/mksRuJNecUjSb1+umt8XEMuLIsmb66eZEfGBcW+NGmKxBAHGFwMPk"
+ "baeECP2U2LS+yzEFM3MoR6EZyP5+Ks9iFKxZLlzjZM0yWa4DMfyMuADjQihwUgkC+4of"
+ "FgIGBZOGQeJvjvVbYOz75rQJBAM85HMNpud3zBZXS1XYnOBLei0S48mOsZ5vJ3gr375B"
+ "39TTDb9Lmx/qyHuh58jpBF/8T67f/3DRTJK5Hn1CtETQ=";
String bcd_encodedsource = RSAUtils.encryptByPublicKeyToBCD(source,
publicKey, null);
bcd_encodedsource = "44833A0014CFD39AEDAA9F734507630FA381AA3E3952A05315BFF5277D6CE1D2638C4645C2F4C93FF2DEDD5B95353B55A31759C16988584901F5AC57764C85F521241DC550F9DBB1EE1382061FC011074BDA97FAD67029338FA10A9374B34151B49A2E4E74013C0BA4C48731326FF7399053CFCD079511072E672B2D546600B4";
System.out.println("加密后文字2:\r\n" + bcd_encodedsource);
String decodedsource = RSAUtils.decryptByPrivateKeyFromBCD(bcd_encodedsource, privateKey, null);
System.out.println("解密后文字2: \r\n" + decodedsource);
String sign = RSAUtils.sign(bcd_encodedsource, privateKey, null);
System.out.println("签名:\r" + sign);
boolean status = RSAUtils.verify(bcd_encodedsource, publicKey, sign, null);
System.out.println("验证结果:\r" + status);
System.err.println("==================test2()结束=================");
}
static void testSign() throws Exception {
System.err.println("==================testSign()=================");
System.err.println("私钥加密——公钥解密");
String source = "这是一行测试RSA数字签名的无意义文字";
System.out.println("原文字:\r\n" + source);
byte[] data = source.getBytes();
byte[] encodedData = RSAUtils.encryptByPrivateKey(data, privateKey);
System.out.println("加密后:\r\n" + new String(encodedData));
byte[] decodedData = RSAUtils.decryptByPublicKey(encodedData, publicKey);
String target = new String(decodedData);
System.out.println("解密后: \r\n" + target);
System.err.println("私钥签名——公钥验证签名");
String sign = RSAUtils.sign(encodedData, privateKey);
System.err.println("签名:\r" + sign);
boolean status = RSAUtils.verify(encodedData, publicKey, sign);
System.err.println("验证结果:\r" + status);
System.err.println("==================testSign()结束=================");
}
static void testSign2() throws Exception {
System.err.println("==================testSign()=================");
System.err.println("私钥加密——公钥解密");
String source = "这是一行测试RSA数字签名的无意义文字";
System.out.println("原文字:\r\n" + source);
String encodedData = RSAUtils.encryptByPrivateKeyToBCD(source, privateKey, null);
System.out.println("加密后:\r\n" + encodedData);
String decodedData = RSAUtils.decryptByPublicKeyFromBCD(encodedData, publicKey, null);
System.out.println("解密后: \r\n" + decodedData);
System.out.println("私钥签名——公钥验证签名");
String sign = RSAUtils.sign(encodedData, privateKey, null);
System.out.println("签名:\r" + sign);
boolean status = RSAUtils.verify(encodedData, publicKey, sign, null);
System.out.println("验证结果:\r" + status);
System.err.println("==================testSign()结束=================");
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy