Test.java 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. package thyyxxk.wxservice_server;
  2. import org.apache.commons.codec.binary.Base64;
  3. import org.bouncycastle.jce.provider.BouncyCastleProvider;
  4. import thyyxxk.wxservice_server.utils.SnowFlakeId;
  5. import javax.crypto.Cipher;
  6. import javax.crypto.spec.SecretKeySpec;
  7. import java.security.Security;
  8. import java.text.DateFormat;
  9. import java.text.SimpleDateFormat;
  10. import java.util.Date;
  11. import java.util.UUID;
  12. public class Test {
  13. public static void main(String[] args) {
  14. Date now = new Date();
  15. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  16. try {
  17. Date sdate = new SimpleDateFormat("yyyy-MM-dd").parse("2023-03-23");
  18. System.out.println(now.before(sdate));
  19. } catch (Exception e) {
  20. }
  21. //加密前:98134EAF0F594CD6A85CE3BB4367C72A&oao6f0y4oF7jd60QhzPzMD9C3bBU&37156
  22. //加密后:zTS83k5dG5jaDl0EmRsy35qt37Nliu+kFvebbJxrFddhH/f1/eP4UjDQmeoiBb9W0mbSBJg3nT4KDVYtqGzWNOPM5UyixrFI4Cv8YewVa6I=
  23. // String uoh = "98134EAF0F594CD6A85CE3BB4367C72A&oao6f0y4oF7jd60QhzPzMD9C3bBU&37156";
  24. // byte[] contentBytes = uoh.getBytes();
  25. //
  26. // String secret = "085181bf219749878035f575e0a1986a";
  27. // byte[] keyBytes = secret.getBytes();
  28. //
  29. // //加密
  30. // String en = encrypt(contentBytes, keyBytes);
  31. // System.out.println(en);
  32. // //解密,用于本地验证
  33. // byte[] enb = en.getBytes();
  34. // byte[] de = decrypt(enb, keyBytes);
  35. // String str = new String(de);
  36. // System.out.println(str);
  37. }
  38. /**
  39. * AES加密
  40. *
  41. * @param contentBytes 由uuid&openid&hospitalId拼接的明文
  42. * @param keyBytes 开放平台分配的appSecret密钥
  43. * @return
  44. */
  45. public static String encrypt(byte[] contentBytes, byte[] keyBytes) {
  46. try {
  47. //添加一个安全管理器提供者
  48. Security.addProvider(new BouncyCastleProvider());
  49. //根据一个字节数组构造一个 SecretKey
  50. SecretKeySpec key = new SecretKeySpec(keyBytes, "AES");
  51. //设置加密类型
  52. Cipher cipher = Cipher.getInstance("AES/ECB/PKCS7Padding", "BC");
  53. cipher.init(Cipher.ENCRYPT_MODE, key); //用于将 Cipher 初始化为加密模式的常量。
  54. byte[] tmp = cipher.doFinal(contentBytes); //操作加密或解密数据
  55. //返回Base64后的加密串
  56. return new String(Base64.encodeBase64(tmp));
  57. } catch (Exception e) {
  58. e.printStackTrace();
  59. }
  60. return null;
  61. }
  62. /**
  63. * AES解密
  64. *
  65. * @param contentBytes 加密后的openId字符串
  66. * @param keyBytes 开放平台分配的appSecret密钥
  67. * @return
  68. */
  69. public static byte[] decrypt(byte[] contentBytes, byte[] keyBytes) {
  70. try {
  71. Security.addProvider(new BouncyCastleProvider());
  72. SecretKeySpec key = new SecretKeySpec(keyBytes, "AES");
  73. Cipher cipher = Cipher.getInstance("AES/ECB/PKCS7Padding", "BC");
  74. cipher.init(Cipher.DECRYPT_MODE, key);
  75. byte[] tmp = cipher.doFinal(Base64.decodeBase64(contentBytes));
  76. return tmp;
  77. } catch (Exception e) {
  78. e.printStackTrace();
  79. }
  80. return null;
  81. }
  82. }