index.uts 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. import { hex_md5 } from "./MD5Utils.uts";
  2. import { CommonSync,sm4Sync,ivSync,sm2Validate } from "../utssdk/interface.uts";
  3. import { Base64 } from "./Base64Utils.uts";
  4. import sm from 'miniprogram-sm-crypto';
  5. import CryptoJS from "crypto-js";
  6. // md5加密
  7. export const md5Sync : CommonSync = function (md5Str : string) : string {
  8. const res : string = hex_md5(md5Str);
  9. return res;
  10. }
  11. // base64加密
  12. export const base64EncodeSync : CommonSync = function (str : string) : string {
  13. const base64 = new Base64()
  14. console.log(str);
  15. const res = base64.encode(str)
  16. return res;
  17. }
  18. // base64解密
  19. export const base64DecodeSync : CommonSync = function (str : string) : string {
  20. const base64 = new Base64()
  21. const res = base64.decode(str)
  22. return res;
  23. }
  24. // 国产SM4ECB加密
  25. export const sm4ECBEncryptSync : sm4Sync = function (dataString : string, keySM4 : string) : string {
  26. const res : string = sm.sm4.encrypt(dataString,keySM4)
  27. return res;
  28. }
  29. // 国产SM4ECB解密
  30. export const sm4ECBDecryptSync : sm4Sync = function (dataString : string, keySM4 : string) : string {
  31. const res : string = sm.sm4.decrypt(dataString,keySM4)
  32. return res;
  33. }
  34. // 国产SM4CBC加密
  35. export const sm4CBCEncryptSync : ivSync = function (dataString : string, keySM4 : string, iv: string) : string {
  36. const res : string = sm.sm4.encrypt(dataString, keySM4, {mode: 'cbc', iv: iv})
  37. return res;
  38. }
  39. // 国产SM4CBC解密
  40. export const sm4CBCDecryptSync : ivSync = function (dataString : string, keySM4 : string, iv: string) : string {
  41. const res : string = sm.sm4.decrypt(dataString, keySM4, {mode: 'cbc', iv: iv})
  42. return res;
  43. }
  44. // 国产SM3加密
  45. export const sm3EncryptSync : CommonSync = function (dataString : string) : string {
  46. let res = sm.sm3(dataString)
  47. return res;
  48. }
  49. // 国产SM2非对称公钥加密
  50. export const sm2EncryptSync : sm4Sync = function (dataString : string, publicKey : string) : string {
  51. let res = sm.sm2.doEncrypt(dataString, publicKey, 1);
  52. return res;
  53. }
  54. // 国产SM2非对称私钥解密
  55. export const sm2DecryptSync : sm4Sync = function (dataString : string, privateKey : string) : string {
  56. let res = sm.sm2.doDecrypt(dataString, privateKey, 1);
  57. return res;
  58. }
  59. // sm2签名
  60. export const sm2PubSignSync : sm4Sync = function (dataString : string, privateKey : string) : string {
  61. const sign = sm.sm2.doSignature(dataString, privateKey);
  62. return sign;
  63. }
  64. // sm2验签
  65. export const sm2PubSignValSync : sm2Validate = function (dataString : string, publicKey : string, sign : string) : boolean {
  66. const verifySign = sm.sm2.doVerifySignature(dataString, sign, publicKey);
  67. return verifySign;
  68. }
  69. // AES对称加密
  70. export const aesEncryptSync : sm4Sync = function (plainText : string, keyAES : string) : string {
  71. let key = CryptoJS.enc.Utf8.parse(keyAES);
  72. let srcs = CryptoJS.enc.Utf8.parse(plainText);
  73. let encrypted = CryptoJS.AES.encrypt(srcs, key, {
  74. mode: CryptoJS.mode.ECB,
  75. padding: CryptoJS.pad.Pkcs7
  76. });
  77. return encrypted.toString();
  78. }
  79. // AES对称解密
  80. export const aesDecryptSync : sm4Sync = function (encryptedBase64 : string, keyAES : string) : string {
  81. let key = CryptoJS.enc.Utf8.parse(keyAES);
  82. let decrypt = CryptoJS.AES.decrypt(encryptedBase64, key, {
  83. mode: CryptoJS.mode.ECB,
  84. padding: CryptoJS.pad.Pkcs7
  85. });
  86. let decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);
  87. return decryptedStr.toString();
  88. }
  89. // AES CBC对称加密
  90. export const aesCBCEncryptSync : ivSync = function (plainText : string, keyAES : string, ivStr: string) : string {
  91. let key = CryptoJS.enc.Utf8.parse(keyAES);
  92. let iv = CryptoJS.enc.Utf8.parse(ivStr);
  93. let srcs = CryptoJS.enc.Utf8.parse(plainText);
  94. let encrypted = CryptoJS.AES.encrypt(srcs, key, {
  95. iv,
  96. mode: CryptoJS.mode.CBC,
  97. padding: CryptoJS.pad.Pkcs7
  98. });
  99. return encrypted.toString();
  100. }
  101. // AES CBC对称解密
  102. export const aesCBCDecryptSync : ivSync = function (encryptedBase64 : string, keyAES : string, ivStr: string) : string {
  103. let key = CryptoJS.enc.Utf8.parse(keyAES);
  104. let iv = CryptoJS.enc.Utf8.parse(ivStr);
  105. let decrypt = CryptoJS.AES.decrypt(encryptedBase64, key, {
  106. iv,
  107. mode: CryptoJS.mode.CBC,
  108. padding: CryptoJS.pad.Pkcs7
  109. });
  110. let decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);
  111. return decryptedStr.toString();
  112. }
  113. // SHA1加密
  114. export const sha1Sync : CommonSync = function (str : string) : string {
  115. let sha1 = CryptoJS.SHA1(str);
  116. return sha1.toString();
  117. }
  118. // SHA256加密
  119. export const sha256Sync : CommonSync = function (str : string) : string {
  120. let sha256 = CryptoJS.SHA256(str);
  121. return sha256.toString();
  122. }
  123. // hmacSHA1加密
  124. export const hmacSHA1Sync : sm4Sync = function (plaintext : string, key : string) : string {
  125. let res = CryptoJS.HmacSHA1(plaintext, key)
  126. return res.toString();
  127. }