|
@ -2,20 +2,27 @@ package com.ccsens.util; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollectionUtil; |
|
|
import cn.hutool.core.collection.CollectionUtil; |
|
|
import cn.hutool.core.date.DateUtil; |
|
|
|
|
|
import cn.hutool.core.lang.Filter; |
|
|
import cn.hutool.core.lang.Filter; |
|
|
|
|
|
import cn.hutool.core.util.CharsetUtil; |
|
|
|
|
|
import cn.hutool.core.util.HexUtil; |
|
|
import cn.hutool.core.util.ImageUtil; |
|
|
import cn.hutool.core.util.ImageUtil; |
|
|
|
|
|
import cn.hutool.core.util.StrUtil; |
|
|
|
|
|
import cn.hutool.crypto.asymmetric.KeyType; |
|
|
|
|
|
import cn.hutool.crypto.asymmetric.RSA; |
|
|
import lombok.Data; |
|
|
import lombok.Data; |
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
import org.apache.poi.ss.formula.functions.T; |
|
|
import org.junit.Assert; |
|
|
import org.junit.Test; |
|
|
import org.junit.Test; |
|
|
|
|
|
|
|
|
import javax.annotation.Resource; |
|
|
import javax.annotation.Resource; |
|
|
|
|
|
import javax.crypto.Cipher; |
|
|
import javax.script.ScriptException; |
|
|
import javax.script.ScriptException; |
|
|
import java.io.*; |
|
|
import java.io.*; |
|
|
import java.math.BigDecimal; |
|
|
import java.math.BigDecimal; |
|
|
import java.net.HttpURLConnection; |
|
|
import java.net.HttpURLConnection; |
|
|
import java.net.URL; |
|
|
import java.net.URL; |
|
|
|
|
|
import java.security.PrivateKey; |
|
|
|
|
|
import java.security.PublicKey; |
|
|
import java.text.DateFormat; |
|
|
import java.text.DateFormat; |
|
|
import java.text.SimpleDateFormat; |
|
|
import java.text.SimpleDateFormat; |
|
|
import java.time.LocalDate; |
|
|
import java.time.LocalDate; |
|
@ -31,6 +38,59 @@ public class OtherTest { |
|
|
public static final String REGEX_PHONE = "^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(17[013678])|(18[0,1-9]))\\d{8}$"; |
|
|
public static final String REGEX_PHONE = "^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(17[013678])|(18[0,1-9]))\\d{8}$"; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
|
public void test18() { |
|
|
|
|
|
// RSA rsa = new RSA();
|
|
|
|
|
|
// //获得私钥
|
|
|
|
|
|
// rsa.getPrivateKey();
|
|
|
|
|
|
// String privateKeyBase64 = rsa.getPrivateKeyBase64();
|
|
|
|
|
|
// System.out.println(privateKeyBase64);
|
|
|
|
|
|
// //获得公钥
|
|
|
|
|
|
// rsa.getPublicKey();
|
|
|
|
|
|
// String publicKeyBase64 = rsa.getPublicKeyBase64();
|
|
|
|
|
|
// System.out.println(publicKeyBase64);
|
|
|
|
|
|
// //数据加密
|
|
|
|
|
|
// byte[] encrypt = rsa.encrypt(StrUtil.bytes("我是一段测试aaaa", CharsetUtil.CHARSET_UTF_8), KeyType.PublicKey);
|
|
|
|
|
|
//
|
|
|
|
|
|
// RSA rsa2 = new RSA(rsa.getPrivateKeyBase64(),rsa.getPublicKeyBase64());
|
|
|
|
|
|
// byte[] decrypt = rsa2.decrypt(new String(encrypt), KeyType.PrivateKey);
|
|
|
|
|
|
//
|
|
|
|
|
|
// System.out.println( new String(decrypt) );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
String PRIVATE_KEY = "MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAJ8Nzno+N1aanMdOW0dcBklJtJbUaZmd3t1+EoH76fjfsYLkAm8NfrIJz7C2jziyqIF3UlWZriQ7RpmkIMQOgJ6NYDOdK2qU/LaTdT8gQKsCB1oTEEa7aYDe522IppiAAD2baf47Yzl4h6mOjGxcemp8m4fVNcYpP2h3FCfCmnaTAgMBAAECgYAFpIK/uXdTHjcTpwb7+BrM/M1oUG7SoVQnvXJApEQ/rQfqIdaoQ+1LuadhmIhqNYRe23HTUZlo9aVii/0Rl4Yei4oNjBAf6t3Iv8i7QhN8l4oLhdjGKbPOFURZciliLUspcoUbkjwJAglTh3MjXDlgpEBlAlbMfd2iWIwMT6DFwQJBAMtpoPHkIbZeEompmjZkXaiaCRQ/vGXpDh66O2ILPn3hvI7xVy1yoBD62PB00gye7RNZTzyxiOOxBWfSn/v+GmECQQDILGfvQD1rXrXsWAbR/s1myj2ErDQtbRfLP/IfP5hBLGf6rtC/XcyYuzfQHh67Pbh4OrR+/iWisXzqN2qF271zAkEAqMSoA2o7Slr82Hj+eRiG2MeMtt82yfs2euobMPqRS9JKJvM4WH3dLplh+weB63TE0KPt6TaHlBqgmIaZtHMcoQJACn3hWLXqQjVtnZyjhuAvDeMtxEVuWq8sHxgT7bVcmpXkQUxmXpFhBuRRMZRSkgfTImIZUcqqWFOrM2+CIs/4pwJALKEiS7GoCL1J3y0SWa7yzjYs93wbRxuW9iOzAIpNBH4r2SpBnnOZWf+DtlH0nZqCu4rFbdlryokw8l726wby4g=="; |
|
|
|
|
|
// MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAJ8Nzno+N1aanMdOW0dcBklJtJbUaZmd3t1+EoH76fjfsYLkAm8NfrIJz7C2jziyqIF3UlWZriQ7RpmkIMQOgJ6NYDOdK2qU/LaTdT8gQKsCB1oTEEa7aYDe522IppiAAD2baf47Yzl4h6mOjGxcemp8m4fVNcYpP2h3FCfCmnaTAgMBAAECgYAFpIK/uXdTHjcTpwb7+BrM/M1oUG7SoVQnvXJApEQ/rQfqIdaoQ+1LuadhmIhqNYRe23HTUZlo9aVii/0Rl4Yei4oNjBAf6t3Iv8i7QhN8l4oLhdjGKbPOFURZciliLUspcoUbkjwJAglTh3MjXDlgpEBlAlbMfd2iWIwMT6DFwQJBAMtpoPHkIbZeEompmjZkXaiaCRQ/vGXpDh66O2ILPn3hvI7xVy1yoBD62PB00gye7RNZTzyxiOOxBWfSn/v+GmECQQDILGfvQD1rXrXsWAbR/s1myj2ErDQtbRfLP/IfP5hBLGf6rtC/XcyYuzfQHh67Pbh4OrR+/iWisXzqN2qF271zAkEAqMSoA2o7Slr82Hj+eRiG2MeMtt82yfs2euobMPqRS9JKJvM4WH3dLplh+weB63TE0KPt6TaHlBqgmIaZtHMcoQJACn3hWLXqQjVtnZyjhuAvDeMtxEVuWq8sHxgT7bVcmpXkQUxmXpFhBuRRMZRSkgfTImIZUcqqWFOrM2+CIs/4pwJALKEiS7GoCL1J3y0SWa7yzjYs93wbRxuW9iOzAIpNBH4r2SpBnnOZWf+DtlH0nZqCu4rFbdlryokw8l726wby4g==
|
|
|
|
|
|
String PUBLIC_KEY = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCRNigQza6Vne2lRin6TeDr9Kg+9mIyYNvQrT0rB4oduiJFWb9JjuGgwJ2nyPlJVV51u5eXFRKtP99HivqWJGtcxp5wVwSDi8on4Z5Jn6pJlRCjckO2jTGo4LSv6KuVKOt9ZjP6gbLotLAxw0X3V+TYXQ2kuLy8iABx1It1K3CYfQIDAQAB"; |
|
|
|
|
|
// RSA pub = new RSA(null, PUBLIC_KEY);
|
|
|
|
|
|
// //公钥加密
|
|
|
|
|
|
// byte[] encrypt = pub.encrypt(StrUtil.bytes("我是一段测试aaaa", CharsetUtil.CHARSET_UTF_8), KeyType.PublicKey);
|
|
|
|
|
|
RSA pri = new RSA(PRIVATE_KEY, null); |
|
|
|
|
|
//私钥签名
|
|
|
|
|
|
byte[] encrypt2 = pri.encrypt("测试字符", KeyType.PrivateKey); |
|
|
|
|
|
System.out.println(StrUtil.str(encrypt2, CharsetUtil.CHARSET_UTF_8)); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
String PUBLIC_KEY1 = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCfDc56PjdWmpzHTltHXAZJSbSW1GmZnd7dfhKB++n437GC5AJvDX6yCc+wto84sqiBd1JVma4kO0aZpCDEDoCejWAznStqlPy2k3U/IECrAgdaExBGu2mA3udtiKaYgAA9m2n+O2M5eIepjoxsXHpqfJuH1TXGKT9odxQnwpp2kwIDAQAB"; |
|
|
|
|
|
// MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCfDc56PjdWmpzHTltHXAZJSbSW1GmZnd7dfhKB++n437GC5AJvDX6yCc+wto84sqiBd1JVma4kO0aZpCDEDoCejWAznStqlPy2k3U/IECrAgdaExBGu2mA3udtiKaYgAA9m2n+O2M5eIepjoxsXHpqfJuH1TXGKT9odxQnwpp2kwIDAQAB
|
|
|
|
|
|
String PRIVATE_KEY1 = "MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAJE2KBDNrpWd7aVGKfpN4Ov0qD72YjJg29CtPSsHih26IkVZv0mO4aDAnafI+UlVXnW7l5cVEq0/30eK+pYka1zGnnBXBIOLyifhnkmfqkmVEKNyQ7aNMajgtK/oq5Uo631mM/qBsui0sDHDRfdX5NhdDaS4vLyIAHHUi3UrcJh9AgMBAAECgYAiJp9znDvj+hlq1j6HHIu6UnbDIATmHjt0L1oEZaiI5z6qGrpPHWhY+xPY4v4lzgsCG1VCdfVHg48Kb1gRuYz6DoS6R6ZnEIlrGVNN/CWZ4wSjF282zgKbtqwAIWYX/S/5Qhea3IJbhSzsi0geA8Y8ZhdVZFID3yHrHfKyxP5BYQJBAPSJ58UPBopTOf2tf+ZbihPe9wJehY25k1k8XCzVv8qoWesl2Mjx8f7oMfVFXl44L51yj95WWbhVsneNPCpTDbkCQQCYBHm/ktEd00iIKsyffKfgOVylAcWqH5PScwxwkxcz+bfElkvGUem+9Xa1KQ2TJAcZzI1+HJIg+Sf4oDOpSOLlAkEAu5wx3NWyRt2jWCSMQ8dnH+enyoGKJTmC+qt8bElxY6HVmrrmnwRAjTjHW01lIRQqM7l49zN4khvtWBtbVX1ywQJAEhtGXRkhq0nFM+LVKJHydPSgIk9Jue+07bYiXy5F7zzpNJMqR17uVn5qOz2+ji4WYm5I1CKXDTJgHm8GeD1kOQJBAKNpC9BwI8IVpR2FhYIVRMjIUxw0xsL0vd+WiNPr+rPt4WHbKkXuk1gbTWVV80PwSCByor+LVvwJ/KtXaMt2NuI="; |
|
|
|
|
|
RSA pub1 = new RSA(null, PUBLIC_KEY1); |
|
|
|
|
|
//公钥验签
|
|
|
|
|
|
byte[] decrypt = pub1.decrypt(encrypt2, KeyType.PublicKey); |
|
|
|
|
|
//私钥解密
|
|
|
|
|
|
RSA pri1 = new RSA(PRIVATE_KEY1, null); |
|
|
|
|
|
byte[] decrypt2 = pri1.decrypt(decrypt, KeyType.PrivateKey); |
|
|
|
|
|
System.out.println(StrUtil.str(decrypt2, CharsetUtil.CHARSET_UTF_8)); |
|
|
|
|
|
// byte[] decrypt = rsa.decrypt(encrypt, KeyType.PrivateKey);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// System.out.println(StrUtil.str(decrypt, CharsetUtil.CHARSET_UTF_8));
|
|
|
|
|
|
//私钥加密,公钥解密
|
|
|
|
|
|
// byte[] encrypt2 = rsa.encrypt(StrUtil.bytes("我是一段测试bbbb", CharsetUtil.CHARSET_UTF_8), KeyType.PrivateKey);
|
|
|
|
|
|
// byte[] decrypt2 = rsa.decrypt(encrypt2, KeyType.PublicKey);
|
|
|
|
|
|
// System.out.println(StrUtil.str(decrypt2, CharsetUtil.CHARSET_UTF_8));
|
|
|
|
|
|
} |
|
|
@Test |
|
|
@Test |
|
|
public void test17() { |
|
|
public void test17() { |
|
|
List<String> stringList = new ArrayList<>(); |
|
|
List<String> stringList = new ArrayList<>(); |
|
|