util.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import {isExternal} from '@/utils/validate'
  2. import store from '@/store'
  3. export function formatDictText(dicts, values) {
  4. if (!(Array.isArray(dicts) && dicts.length > 0)) {
  5. return values;
  6. }
  7. if (!values) {
  8. return ""
  9. }
  10. let valueArr = values.split(",")
  11. let contentArr = []
  12. dicts.forEach(dict => {
  13. for (let i = 0; i < valueArr.length; i++) {
  14. if (valueArr[i] === dict.value) {
  15. contentArr.push(dict.content)
  16. break;
  17. }
  18. }
  19. })
  20. return contentArr.toString()
  21. }
  22. export function randomString(len) {
  23. len = len || 32
  24. const $chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678'
  25. /** **默认去掉了容易混淆的字符oOLl,9gq,Vv,Uu,I1****/
  26. const maxPos = $chars.length
  27. let pwd = ''
  28. for (let i = 0; i < len; i++) {
  29. pwd += $chars.charAt(Math.floor(Math.random() * maxPos))
  30. }
  31. return pwd
  32. }
  33. /**
  34. * XOR 解密(Base64 输入,私钥字符串)
  35. */
  36. export function xorDecrypt(base64Str, privateKey) {
  37. // Base64 解码为二进制字符串
  38. const binaryStr = atob(base64Str);
  39. const keyBytes = privateKey.split('').map(ch => ch.charCodeAt(0));
  40. let result = '';
  41. for (let i = 0; i < binaryStr.length; i++) {
  42. const dataByte = binaryStr.charCodeAt(i);
  43. const keyByte = keyBytes[i % keyBytes.length];
  44. result += String.fromCharCode(dataByte ^ keyByte);
  45. }
  46. return result;
  47. }