|
@@ -16,12 +16,14 @@ import cn.hutool.http.HttpUtil;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.malk.utils.UtilDateTime;
|
|
import com.malk.utils.UtilDateTime;
|
|
|
|
|
+import com.malk.utils.UtilFile;
|
|
|
import com.malk.utils.UtilMap;
|
|
import com.malk.utils.UtilMap;
|
|
|
import com.sun.deploy.security.CertUtils;
|
|
import com.sun.deploy.security.CertUtils;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
|
|
|
import java.io.ByteArrayInputStream;
|
|
import java.io.ByteArrayInputStream;
|
|
|
import java.io.FileInputStream;
|
|
import java.io.FileInputStream;
|
|
|
|
|
+import java.io.InputStream;
|
|
|
import java.nio.charset.StandardCharsets;
|
|
import java.nio.charset.StandardCharsets;
|
|
|
import java.security.KeyFactory;
|
|
import java.security.KeyFactory;
|
|
|
import java.security.PublicKey;
|
|
import java.security.PublicKey;
|
|
@@ -55,35 +57,38 @@ public class TestUtil {
|
|
|
private final static String GYPAY_API_SIGN_PUB_KEY="MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCmudhlkVXrFP1DB0r11LvVpy8nYVO9sR2tYLXCkQxXE4HR2VlihCO43B2v/Ep3tlny4l/OX++AQX4sJpO8vAnCRmNIAgXKXAfvre1HTSkJf9vb8G9sf4UsZX2bLEOtH4wOO7Osv8Za98WzBHBRrqESI91Z4GSE0/8ucMp6V7EZ5wIDAQAB";
|
|
private final static String GYPAY_API_SIGN_PUB_KEY="MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCmudhlkVXrFP1DB0r11LvVpy8nYVO9sR2tYLXCkQxXE4HR2VlihCO43B2v/Ep3tlny4l/OX++AQX4sJpO8vAnCRmNIAgXKXAfvre1HTSkJf9vb8G9sf4UsZX2bLEOtH4wOO7Osv8Za98WzBHBRrqESI91Z4GSE0/8ucMp6V7EZ5wIDAQAB";
|
|
|
|
|
|
|
|
public static void main(String[] args) throws Exception {
|
|
public static void main(String[] args) throws Exception {
|
|
|
- query();
|
|
|
|
|
-// String sign1="GRJCRklJVIy8vUFUg4gDo+iv+MIp+MHmitPrnUJLO0mcg+6EiJklYhoXtHhgmTgx2Rw7AgTsAsNNbM02ehgMLim0zeX76Ghq1oD/xbDyydi6/CLSEf1QS9fQvUsnOIwgZKarSc/UM2wdlgHf9M7OmNpf3Mv+YuEHwyMF6dXlljc=";
|
|
|
|
|
-// String data="AeWTi5jUG8l1h6JJG9uuvGH63r6sSpnJW2VhOA52XGW5QdH6TESqQ4iKV46TuAB53juaW6DyBrQcuoXOXZK6lzIkird1cQksS8ve/IxVBwc1sa8BJRrO9cqCHoURjbKdJz66+FBE5L4pCZy5DESP/Q==";
|
|
|
|
|
-//// RSASignatureUtil.verifySafe("AeWTi5jUG8l1h6JJG9uuvGH63r6sSpnJW2VhOA52XGW5QdH6TESqQ4iKV46TuAB53juaW6DyBrQcuoXOXZK6lzIkird1cQksS8ve/IxVBwc1sa8BJRrO9cqCHoURjbKdJz66+FBE5L4pCZy5DESP/Q=="
|
|
|
|
|
-//// ,"GRJCRklJVIy8vUFUg4gDo+iv+MIp+MHmitPrnUJLO0mcg+6EiJklYhoXtHhgmTgx2Rw7AgTsAsNNbM02ehgMLim0zeX76Ghq1oD/xbDyydi6/CLSEf1QS9fQvUsnOIwgZKarSc/UM2wdlgHf9M7OmNpf3Mv+YuEHwyMF6dXlljc="
|
|
|
|
|
-//// ,GYPAY_API_SIGN_PUB_KEY);
|
|
|
|
|
-//// byte[] derData = Base64.decode(PRIVATE_KEY);
|
|
|
|
|
-//// X509Certificate x= parseDERCertificate(derData);
|
|
|
|
|
-//// PublicKey publicKey = x.getPublicKey();
|
|
|
|
|
-//// System.out.println(Base64.encode(publicKey.getEncoded()));
|
|
|
|
|
-// try {
|
|
|
|
|
-// // 加载证书文件
|
|
|
|
|
-// CertificateFactory cf = CertificateFactory.getInstance("X.509");
|
|
|
|
|
-// FileInputStream fis = null;
|
|
|
|
|
-// fis = new FileInputStream("/home/ICBC_CZY__SIGN_TEST.cer");
|
|
|
|
|
-// X509Certificate cert = (X509Certificate) cf.generateCertificate(fis);
|
|
|
|
|
-// // 从证书中提取公钥
|
|
|
|
|
-// PublicKey publicKey = cert.getPublicKey();
|
|
|
|
|
-// System.out.println(new String(Base64.encode(publicKey.getEncoded()).getBytes(), StandardCharsets.UTF_8));
|
|
|
|
|
-//
|
|
|
|
|
-// // 验证签名
|
|
|
|
|
-// Signature signature = Signature.getInstance("SHA256withRSA");
|
|
|
|
|
-// signature.initVerify(publicKey);
|
|
|
|
|
-// signature.update(data.getBytes(StandardCharsets.UTF_8));
|
|
|
|
|
-// boolean verify = signature.verify(Base64.decode(sign1));
|
|
|
|
|
-// System.out.println(verify);
|
|
|
|
|
-// }catch (Exception e){
|
|
|
|
|
-// e.printStackTrace();
|
|
|
|
|
-// }
|
|
|
|
|
|
|
+// query();
|
|
|
|
|
+ String sign1="GRJCRklJVIy8vUFUg4gDo+iv+MIp+MHmitPrnUJLO0mcg+6EiJklYhoXtHhgmTgx2Rw7AgTsAsNNbM02ehgMLim0zeX76Ghq1oD/xbDyydi6/CLSEf1QS9fQvUsnOIwgZKarSc/UM2wdlgHf9M7OmNpf3Mv+YuEHwyMF6dXlljc=";
|
|
|
|
|
+ String data="AeWTi5jUG8l1h6JJG9uuvGH63r6sSpnJW2VhOA52XGW5QdH6TESqQ4iKV46TuAB53juaW6DyBrQcuoXOXZK6lzIkird1cQksS8ve/IxVBwc1sa8BJRrO9cqCHoURjbKdJz66+FBE5L4pCZy5DESP/Q==";
|
|
|
|
|
+// RSASignatureUtil.verifySafe("AeWTi5jUG8l1h6JJG9uuvGH63r6sSpnJW2VhOA52XGW5QdH6TESqQ4iKV46TuAB53juaW6DyBrQcuoXOXZK6lzIkird1cQksS8ve/IxVBwc1sa8BJRrO9cqCHoURjbKdJz66+FBE5L4pCZy5DESP/Q=="
|
|
|
|
|
+// ,"GRJCRklJVIy8vUFUg4gDo+iv+MIp+MHmitPrnUJLO0mcg+6EiJklYhoXtHhgmTgx2Rw7AgTsAsNNbM02ehgMLim0zeX76Ghq1oD/xbDyydi6/CLSEf1QS9fQvUsnOIwgZKarSc/UM2wdlgHf9M7OmNpf3Mv+YuEHwyMF6dXlljc="
|
|
|
|
|
+// ,GYPAY_API_SIGN_PUB_KEY);
|
|
|
|
|
+// byte[] derData = Base64.decode(PRIVATE_KEY);
|
|
|
|
|
+// X509Certificate x= parseDERCertificate(derData);
|
|
|
|
|
+// PublicKey publicKey = x.getPublicKey();
|
|
|
|
|
+// System.out.println(Base64.encode(publicKey.getEncoded()));
|
|
|
|
|
+ try {
|
|
|
|
|
+ // 加载证书文件
|
|
|
|
|
+ CertificateFactory cf = CertificateFactory.getInstance("X.509");
|
|
|
|
|
+ FileInputStream fis = null;
|
|
|
|
|
+ fis = new FileInputStream("D:\\project\\cont\\mjava-lianan\\src\\main\\resources\\cer\\ICBC_CZY__SIGN_TEST.cer");
|
|
|
|
|
+// InputStream inputStream = UtilFile.readPackageResource("cer/" + "ICBC_CZY__SIGN_TEST.cer");
|
|
|
|
|
+
|
|
|
|
|
+ X509Certificate cert = (X509Certificate) cf.generateCertificate(fis);
|
|
|
|
|
+// X509Certificate cert = (X509Certificate) cf.generateCertificate(inputStream);
|
|
|
|
|
+ // 从证书中提取公钥
|
|
|
|
|
+ PublicKey publicKey = cert.getPublicKey();
|
|
|
|
|
+ System.out.println(new String(Base64.encode(publicKey.getEncoded()).getBytes(), StandardCharsets.UTF_8));
|
|
|
|
|
+
|
|
|
|
|
+ // 验证签名
|
|
|
|
|
+ Signature signature = Signature.getInstance("SHA256withRSA");
|
|
|
|
|
+ signature.initVerify(publicKey);
|
|
|
|
|
+ signature.update(data.getBytes(StandardCharsets.UTF_8));
|
|
|
|
|
+ boolean verify = signature.verify(Base64.decode(sign1));
|
|
|
|
|
+ System.out.println(verify);
|
|
|
|
|
+ }catch (Exception e){
|
|
|
|
|
+ e.printStackTrace();
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|