hrp-ui-base 1.0.1 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (269) hide show
  1. package/dist/components.cjs +1 -1
  2. package/dist/components.es.js +3595 -1224
  3. package/dist/index.cjs +1 -1
  4. package/dist/index.es.js +100 -67
  5. package/dist/style.css +1 -1
  6. package/package.json +16 -4
  7. package/packages/approval-process/.eslintrc +7 -0
  8. package/packages/approval-process/README.md +130 -0
  9. package/packages/approval-process/index.ts +65 -0
  10. package/packages/approval-process/package.json +17 -0
  11. package/packages/approval-process/packages/components/choose-member/BO/departBo.ts +8 -0
  12. package/packages/approval-process/packages/components/choose-member/BO/memberBo.ts +14 -0
  13. package/packages/approval-process/packages/components/choose-member/BO/role.svg +1 -0
  14. package/packages/approval-process/packages/components/choose-member/BO/roleBo.ts +16 -0
  15. package/packages/approval-process/packages/components/choose-member/index.vue +497 -0
  16. package/packages/approval-process/packages/components/choose-member/styles/common.scss +134 -0
  17. package/packages/approval-process/packages/components/comment/assets/avatar.svg +1 -0
  18. package/packages/approval-process/packages/components/comment/assets/download.svg +4 -0
  19. package/packages/approval-process/packages/components/comment/assets/mp3.svg +11 -0
  20. package/packages/approval-process/packages/components/comment/assets/mp4.svg +11 -0
  21. package/packages/approval-process/packages/components/comment/assets/other.svg +11 -0
  22. package/packages/approval-process/packages/components/comment/assets/pdf.svg +11 -0
  23. package/packages/approval-process/packages/components/comment/assets/ppt.svg +11 -0
  24. package/packages/approval-process/packages/components/comment/assets/preview.svg +4 -0
  25. package/packages/approval-process/packages/components/comment/assets/remove.png +0 -0
  26. package/packages/approval-process/packages/components/comment/assets/word.svg +11 -0
  27. package/packages/approval-process/packages/components/comment/assets/xls.svg +11 -0
  28. package/packages/approval-process/packages/components/comment/index.vue +843 -0
  29. package/packages/approval-process/packages/components/comment/modules/previewMp.vue +54 -0
  30. package/packages/approval-process/packages/components/comment/styles/comment-style.scss +304 -0
  31. package/packages/approval-process/packages/components/image-cropper/index.vue +202 -0
  32. package/packages/approval-process/packages/components/sign/index.vue +766 -0
  33. package/packages/approval-process/packages/components/sign/modules/full-screen-sign.vue +20 -0
  34. package/packages/approval-process/packages/components/urge-dialog/index.vue +121 -0
  35. package/packages/approval-process/packages/components/vue-esign/index.vue +289 -0
  36. package/packages/approval-process/packages/flow/approve-component/approve-success.vue +82 -0
  37. package/packages/approval-process/packages/flow/approve-component/route-params-error.vue +49 -0
  38. package/packages/approval-process/packages/flow/approve-component/submit-success.vue +59 -0
  39. package/packages/approval-process/packages/flow/examine-approve-itr.vue +978 -0
  40. package/packages/approval-process/packages/flow/examine-approve.vue +1065 -0
  41. package/packages/approval-process/packages/flow/form-component/associated-approval-form/README.md +38 -0
  42. package/packages/approval-process/packages/flow/form-component/associated-approval-form/assets/avatar.svg +1 -0
  43. package/packages/approval-process/packages/flow/form-component/associated-approval-form/index.vue +159 -0
  44. package/packages/approval-process/packages/flow/form-component/associated-approval-form/modules/associated-approval-form-mobile.vue +297 -0
  45. package/packages/approval-process/packages/flow/form-component/associated-approval-form/modules/associated-approval-form-pc.vue +314 -0
  46. package/packages/approval-process/packages/flow/form-component/associated-approval-form/style/curd-area-mobile.scss +110 -0
  47. package/packages/approval-process/packages/flow/form-component/associated-approval-form/style/curd-area.scss +96 -0
  48. package/packages/approval-process/packages/flow/form-component/associated-approval-form/style/out-put.scss +48 -0
  49. package/packages/approval-process/packages/flow/form-component/show-sign.vue +27 -0
  50. package/packages/approval-process/packages/flow/styles/common.scss +134 -0
  51. package/packages/approval-process/packages/flow/styles/examine-approve-pc.scss +465 -0
  52. package/packages/approval-process/packages/flow/styles/examine-approve-phone.scss +293 -0
  53. package/packages/approval-process/packages/flow/styles/submit-approve-pc.scss +379 -0
  54. package/packages/approval-process/packages/flow/styles/submit-approve-phone.scss +337 -0
  55. package/packages/approval-process/packages/flow/submit-approve-itr.vue +623 -0
  56. package/packages/approval-process/packages/flow/submit-approve.vue +628 -0
  57. package/packages/approval-process/packages/flow/systemCom/BO/departBo.ts +8 -0
  58. package/packages/approval-process/packages/flow/systemCom/BO/memberBo.ts +14 -0
  59. package/packages/approval-process/packages/flow/systemCom/BO/role.svg +1 -0
  60. package/packages/approval-process/packages/flow/systemCom/BO/roleBo.ts +16 -0
  61. package/packages/approval-process/packages/flow/systemCom/choose-depart.vue +399 -0
  62. package/packages/approval-process/packages/flow/systemCom/choose-member-phone.vue +515 -0
  63. package/packages/approval-process/packages/flow/systemCom/choose-member.vue +565 -0
  64. package/packages/approval-process/packages/flow/systemCom/choose-role.vue +301 -0
  65. package/packages/approval-process/packages/styles/common.scss +134 -0
  66. package/packages/approval-process/packages/styles/flex-common.scss +118 -0
  67. package/packages/approval-process/packages/styles/flexCommon.scss +73 -0
  68. package/packages/approval-process/packages/styles/main.css +216 -0
  69. package/packages/approval-process/packages/styles/router-page.scss +371 -0
  70. package/packages/approval-process/packages/styles/style-set.ts +207 -0
  71. package/packages/approval-process/packages/types.d.ts +4 -0
  72. package/packages/approval-process/packages/utils/base.ts +15 -0
  73. package/packages/approval-process/packages/utils/crypto.ts +67 -0
  74. package/packages/approval-process/packages/utils/ddUtils.ts +56 -0
  75. package/packages/approval-process/packages/utils/debounce.ts +36 -0
  76. package/packages/approval-process/packages/utils/des.js +1107 -0
  77. package/packages/approval-process/packages/utils/download.ts +38 -0
  78. package/packages/approval-process/packages/utils/editor.ts +37 -0
  79. package/packages/approval-process/packages/utils/getEnv.ts +36 -0
  80. package/packages/approval-process/packages/utils/os.ts +20 -0
  81. package/packages/approval-process/packages/utils/path-util.ts +31 -0
  82. package/packages/approval-process/packages/utils/routerUtil.ts +304 -0
  83. package/packages/approval-process/packages/utils/string-utils.ts +13 -0
  84. package/packages/approval-process/packages/utils/throttle.ts +44 -0
  85. package/packages/approval-process/packages/utils/validate.ts +92 -0
  86. package/packages/approval-process/packages/utils/ws.ts +218 -0
  87. package/packages/approval-process/tsconfig.json +72 -0
  88. package/packages/approval-process/vite.config.ts +56 -0
  89. package/src/api/bms/flow/FlowCommentController.ts +50 -0
  90. package/src/api/bms/flow/FlowInstanceController.ts +167 -0
  91. package/src/api/bms/flow/FlowProcessController.ts +55 -0
  92. package/src/api/bms/flow/FlowSheetController.ts +27 -0
  93. package/src/api/bms/flow/FlowSignController.ts +76 -0
  94. package/src/api/bms/flow/bo/AssociatedApprovalBO.ts +15 -0
  95. package/src/api/bms/flow/bo/AssociatedApprovalVO.ts +35 -0
  96. package/src/api/bms/flow/bo/AuditBaseInfo.ts +39 -0
  97. package/src/api/bms/flow/bo/ButtonVo.ts +7 -0
  98. package/src/api/bms/flow/bo/DingCallbackBo.ts +13 -0
  99. package/src/api/bms/flow/bo/FlowCommentBO.ts +12 -0
  100. package/src/api/bms/flow/bo/FlowCommentVO.ts +23 -0
  101. package/src/api/bms/flow/bo/FlowInstanceBO.ts +14 -0
  102. package/src/api/bms/flow/bo/FlowNodeVO.ts +24 -0
  103. package/src/api/bms/flow/bo/FlowNoticeBO.ts +17 -0
  104. package/src/api/bms/flow/bo/FlowProcessBO.ts +13 -0
  105. package/src/api/bms/flow/bo/FlowProcessVO.ts +9 -0
  106. package/src/api/bms/flow/bo/FlowReplyVO.ts +23 -0
  107. package/src/api/bms/flow/bo/FlowSheetVO.ts +16 -0
  108. package/src/api/bms/flow/bo/InstanceBackBO.ts +9 -0
  109. package/src/api/bms/flow/bo/InstanceNodeBO.ts +13 -0
  110. package/src/api/bms/flow/bo/InstanceNodeVO.ts +21 -0
  111. package/src/api/bms/flow/bo/NodeShowVo.ts +19 -0
  112. package/src/api/bms/flow/bo/ReviewBO.ts +11 -0
  113. package/src/api/bms/flow/bo/SheetSearchBO.ts +11 -0
  114. package/src/api/bms/flow/bo/SystemVO.ts +7 -0
  115. package/src/api/bms/flow/bo/TransmitBO.ts +9 -0
  116. package/src/api/bms/flow/bo/UrgeFlowBO.ts +7 -0
  117. package/src/api/bms/flow/bo/UserBaseInfoVo.ts +13 -0
  118. package/src/api/bms/flow/bo/UserInfoVo.ts +44 -0
  119. package/src/api/bms/flow/bo/UserResultVo.ts +17 -0
  120. package/src/api/bms/flow/bo/ValueMapBo.ts +7 -0
  121. package/src/api/bms/home/HomeController.ts +106 -0
  122. package/src/api/bms/home/bo/CollectedMenuBo.ts +9 -0
  123. package/src/api/bms/home/bo/DeptBaseVo.ts +9 -0
  124. package/src/api/bms/home/bo/DomainVO.ts +13 -0
  125. package/src/api/bms/home/bo/FunPermission.ts +17 -0
  126. package/src/api/bms/home/bo/GroupVO.ts +10 -0
  127. package/src/api/bms/home/bo/HomeMenu.ts +22 -0
  128. package/src/api/bms/home/bo/HomeMenuVo.ts +11 -0
  129. package/src/api/bms/home/bo/PersonalizationBo.ts +17 -0
  130. package/src/api/bms/home/bo/PersonalizationVo.ts +19 -0
  131. package/src/api/bms/home/bo/PhoneMenu.ts +14 -0
  132. package/src/api/bms/home/bo/SearchMenuVo.ts +10 -0
  133. package/src/api/bms/home/bo/UserBaseInfoVo.ts +11 -0
  134. package/src/api/hrms/dept/bo/DeptBaseVo.ts +6 -0
  135. package/src/api/hrms/dept/bo/DeptTreeVo.ts +23 -0
  136. package/src/api/hrms/dept/bo/DeptUserVo.ts +9 -0
  137. package/src/api/hrms/dept/bo/DeptUsersVo.ts +10 -0
  138. package/src/api/hrms/dept/bo/DeptVo.ts +19 -0
  139. package/src/api/hrms/dept/bo/UserBaseInfoVo.ts +8 -0
  140. package/src/api/hrms/dept/deptController.ts +100 -0
  141. package/src/api/hrms/role/bo/RoleBaseVo.ts +6 -0
  142. package/src/api/hrms/role/bo/RoleGroupVo.ts +11 -0
  143. package/src/api/hrms/role/bo/RoleVo.ts +22 -0
  144. package/src/api/hrms/role/roleController.ts +19 -0
  145. package/src/api/hrms/user/bo/UserBaseInfoVo.ts +11 -0
  146. package/src/api/hrms/user/bo/UserCardVO.ts +14 -0
  147. package/src/api/hrms/user/bo/UserDeptBO.ts +13 -0
  148. package/src/api/hrms/user/bo/UserRoleBO.ts +11 -0
  149. package/src/api/hrms/user/bo/UserVO.ts +23 -0
  150. package/src/api/hrms/user/userController.ts +86 -0
  151. package/src/api/notice/NoticeController.ts +73 -0
  152. package/src/api/notice/bo/NoticePageBO.ts +24 -0
  153. package/src/api/notice/bo/NoticeVO.ts +31 -0
  154. package/src/api/work-order-pc/flow/Bo/ValueMapBo.ts +7 -0
  155. package/src/api/work-order-pc/flow/ItrFlowProcessController.ts +42 -0
  156. package/src/api/work-order-pc/flow/Vo/FlowNodeVO.ts +24 -0
  157. package/src/api/work-order-pc/flow/Vo/UserInfoVo.ts +44 -0
  158. package/src/assets/layout/avatar-default.svg +6 -0
  159. package/src/assets/layout/collect-active.svg +7 -0
  160. package/src/assets/layout/collect-default.svg +7 -0
  161. package/src/assets/layout/download-active.svg +8 -0
  162. package/src/assets/layout/download-default.svg +8 -0
  163. package/src/assets/layout/export-dark.svg +7 -0
  164. package/src/assets/layout/export-default.svg +7 -0
  165. package/src/assets/layout/font-active.svg +6 -0
  166. package/src/assets/layout/font-default.svg +6 -0
  167. package/src/assets/layout/help-active.svg +10 -0
  168. package/src/assets/layout/help-default.svg +10 -0
  169. package/src/assets/layout/home-active.svg +6 -0
  170. package/src/assets/layout/home.svg +6 -0
  171. package/src/assets/layout/menu-expand.svg +6 -0
  172. package/src/assets/layout/menu-icon.png +0 -0
  173. package/src/assets/layout/menu-position-active.svg +6 -0
  174. package/src/assets/layout/menu-position-default.svg +6 -0
  175. package/src/assets/layout/message-active.svg +9 -0
  176. package/src/assets/layout/message-default.svg +9 -0
  177. package/src/assets/layout/moon.svg +8 -0
  178. package/src/assets/layout/router-all-dark.svg +11 -0
  179. package/src/assets/layout/router-all-default.svg +17 -0
  180. package/src/assets/layout/search-active.svg +20 -0
  181. package/src/assets/layout/search-default.svg +20 -0
  182. package/src/assets/layout/star-active.svg +1 -0
  183. package/src/assets/layout/star-default.svg +3 -0
  184. package/src/assets/layout/sun-active.svg +6 -0
  185. package/src/assets/layout/sun-default.svg +6 -0
  186. package/src/assets/layout/switch-moon.svg +3 -0
  187. package/src/assets/layout/switch-sun.svg +41 -0
  188. package/src/assets/layout/todo-active.svg +12 -0
  189. package/src/assets/layout/todo-default.svg +12 -0
  190. package/src/assets/layout/user-dark.svg +13 -0
  191. package/src/assets/layout/user-default.svg +13 -0
  192. package/src/assets/process/agree.png +0 -0
  193. package/src/assets/process/defaultAvatar.png +0 -0
  194. package/src/assets/process/drawer/departManagerJump.png +0 -0
  195. package/src/assets/process/drawer/manyLevel1close.svg +10 -0
  196. package/src/assets/process/drawer/manyLevel1open.svg +7 -0
  197. package/src/assets/process/drawer/manyLevel2close.svg +7 -0
  198. package/src/assets/process/drawer/manyLevel2open.svg +7 -0
  199. package/src/assets/process/inProcess.png +0 -0
  200. package/src/assets/process/manyPeople.png +0 -0
  201. package/src/assets/process/manyPeople2.png +0 -0
  202. package/src/assets/process/reject.png +0 -0
  203. package/src/assets/process/revoke.png +0 -0
  204. package/src/components/annex-img-upload/index.vue +4 -4
  205. package/src/components/annex-img-upload/modules/previewMp.vue +1 -1
  206. package/src/components/annex-upload/index.vue +4 -4
  207. package/src/components/annex-upload/modules/previewMp.vue +1 -1
  208. package/src/components/annex-upload-weijian/index.vue +4 -4
  209. package/src/components/annex-upload-weijian/modules/previewMp.vue +1 -1
  210. package/src/components/base-layout/index.vue +198 -0
  211. package/src/components/layout/SysHeader.vue +90 -0
  212. package/src/components/layout/SysHeaderLeft.vue +116 -0
  213. package/src/components/layout/SysHeaderRight.vue +112 -0
  214. package/src/components/layout/SysHeaderTabs.vue +289 -0
  215. package/src/components/layout/components/avatar-component.vue +77 -0
  216. package/src/components/layout/components/dark-component.vue +82 -0
  217. package/src/components/layout/components/download-component.vue +49 -0
  218. package/src/components/layout/components/font-size-component.vue +66 -0
  219. package/src/components/layout/components/menu-position-component.vue +97 -0
  220. package/src/components/layout/components/message-component.vue +64 -0
  221. package/src/components/layout/components/todo-component.vue +55 -0
  222. package/src/components/layout/index.ts +24 -0
  223. package/src/components/layout/message/message-dictionary.ts +27 -0
  224. package/src/components/layout/message/message-icon//345/205/250/351/203/250/351/200/232/347/237/245-/350/223/235.svg +8 -0
  225. package/src/components/layout/message/message-icon//345/205/250/351/203/250/351/200/232/347/237/245-/351/273/221.svg +8 -0
  226. package/src/components/layout/message/message-icon//345/205/250/351/203/250/351/200/232/347/237/245.svg +8 -0
  227. package/src/components/layout/message/message-icon//345/205/254/345/221/212/351/200/232/347/237/245-/350/223/235.svg +12 -0
  228. package/src/components/layout/message/message-icon//345/205/254/345/221/212/351/200/232/347/237/245-/351/273/221.svg +12 -0
  229. package/src/components/layout/message/message-icon//345/205/254/345/221/212/351/200/232/347/237/245.svg +12 -0
  230. package/src/components/layout/message/message-icon//345/256/241/346/211/271/351/200/232/347/237/245-/350/223/235.svg +8 -0
  231. package/src/components/layout/message/message-icon//345/256/241/346/211/271/351/200/232/347/237/245-/351/273/221.svg +8 -0
  232. package/src/components/layout/message/message-icon//345/256/241/346/211/271/351/200/232/347/237/245.svg +8 -0
  233. package/src/components/layout/message/message-icon//345/257/274/345/207/272/351/200/232/347/237/245-/350/223/235.svg +13 -0
  234. package/src/components/layout/message/message-icon//345/257/274/345/207/272/351/200/232/347/237/245-/351/273/221.svg +13 -0
  235. package/src/components/layout/message/message-icon//345/257/274/345/207/272/351/200/232/347/237/245.svg +13 -0
  236. package/src/components/layout/message/message-icon//346/234/252/350/257/273/351/200/232/347/237/245-/350/223/235.svg +11 -0
  237. package/src/components/layout/message/message-icon//346/234/252/350/257/273/351/200/232/347/237/245-/351/273/221.svg +11 -0
  238. package/src/components/layout/message/message-icon//346/234/252/350/257/273/351/200/232/347/237/245.svg +11 -0
  239. package/src/components/layout/message/message-icon//347/251/272/347/212/266/346/200/201.svg +17 -0
  240. package/src/components/layout/message/message-icon//347/263/273/347/273/237/351/200/232/347/237/245-/350/223/235.svg +13 -0
  241. package/src/components/layout/message/message-icon//347/263/273/347/273/237/351/200/232/347/237/245-/351/273/221.svg +13 -0
  242. package/src/components/layout/message/message-icon//347/263/273/347/273/237/351/200/232/347/237/245.svg +13 -0
  243. package/src/components/layout/message/message-notification-drawer.vue +529 -0
  244. package/src/components/layout/personalization-guide-dialog.vue +255 -0
  245. package/src/components/layout/sideMenu-global.scss +115 -0
  246. package/src/components/layout/sideMenu.scss +312 -0
  247. package/src/components/layout/sideMenu.vue +542 -0
  248. package/src/components/layout/sideMenuSonList.vue +185 -0
  249. package/src/components/layout/styles/icon.scss +72 -0
  250. package/src/components/layout/types.ts +98 -0
  251. package/src/components/list-search-content/components/search-date-range.vue +1 -1
  252. package/src/components/list-search-content/components/search-date-time-range.vue +1 -1
  253. package/src/components/list-search-content/components/search-date.vue +1 -1
  254. package/src/components/list-search-content/components/search-input-number.vue +1 -1
  255. package/src/components/list-search-content/components/search-input.vue +1 -1
  256. package/src/components/list-search-content/components/search-multiple_select.vue +1 -1
  257. package/src/components/list-search-content/components/search-select.vue +1 -1
  258. package/src/components/list-search-content/index.vue +6 -6
  259. package/src/components/list-search-content/modules/add-views-package-dialog.vue +3 -3
  260. package/src/components/list-search-content/modules/search-condition-area.vue +2 -2
  261. package/src/components/list-search-content/modules/views-package-manage-dialog.vue +5 -5
  262. package/src/components.ts +19 -4
  263. package/src/index.ts +1 -0
  264. package/src/utils/dd-utils.ts +1 -1
  265. package/src/utils/get-dict.ts +2 -2
  266. package/src/utils/permit-utils.ts +2 -2
  267. package/src/api/bms/dict/bo/TotalDictSearchBO.ts +0 -8
  268. package/src/api/bms/file/FileExportController.ts +0 -18
  269. package/src/api/bms/file/bo/FileExportVO.ts +0 -17
@@ -0,0 +1,1107 @@
1
+ /*
2
+ * the 64 bit des core arithmetic
3
+ */
4
+ function bt4ToHex(binary) {
5
+ let hex;
6
+ switch (binary) {
7
+ case "0000":
8
+ hex = "0";
9
+ break;
10
+ case "0001":
11
+ hex = "1";
12
+ break;
13
+ case "0010":
14
+ hex = "2";
15
+ break;
16
+ case "0011":
17
+ hex = "3";
18
+ break;
19
+ case "0100":
20
+ hex = "4";
21
+ break;
22
+ case "0101":
23
+ hex = "5";
24
+ break;
25
+ case "0110":
26
+ hex = "6";
27
+ break;
28
+ case "0111":
29
+ hex = "7";
30
+ break;
31
+ case "1000":
32
+ hex = "8";
33
+ break;
34
+ case "1001":
35
+ hex = "9";
36
+ break;
37
+ case "1010":
38
+ hex = "A";
39
+ break;
40
+ case "1011":
41
+ hex = "B";
42
+ break;
43
+ case "1100":
44
+ hex = "C";
45
+ break;
46
+ case "1101":
47
+ hex = "D";
48
+ break;
49
+ case "1110":
50
+ hex = "E";
51
+ break;
52
+ case "1111":
53
+ hex = "F";
54
+ break;
55
+ }
56
+ return hex;
57
+ }
58
+ function bt64ToHex(byteData) {
59
+ let hex = "";
60
+ for (let i = 0; i < 16; i++) {
61
+ let bt = "";
62
+ for (let j = 0; j < 4; j++) {
63
+ bt += byteData[i * 4 + j];
64
+ }
65
+ hex += bt4ToHex(bt);
66
+ }
67
+ return hex;
68
+ }
69
+ function hexToBt4(hex) {
70
+ let binary;
71
+ switch (hex) {
72
+ case "0":
73
+ binary = "0000";
74
+ break;
75
+ case "1":
76
+ binary = "0001";
77
+ break;
78
+ case "2":
79
+ binary = "0010";
80
+ break;
81
+ case "3":
82
+ binary = "0011";
83
+ break;
84
+ case "4":
85
+ binary = "0100";
86
+ break;
87
+ case "5":
88
+ binary = "0101";
89
+ break;
90
+ case "6":
91
+ binary = "0110";
92
+ break;
93
+ case "7":
94
+ binary = "0111";
95
+ break;
96
+ case "8":
97
+ binary = "1000";
98
+ break;
99
+ case "9":
100
+ binary = "1001";
101
+ break;
102
+ case "A":
103
+ binary = "1010";
104
+ break;
105
+ case "B":
106
+ binary = "1011";
107
+ break;
108
+ case "C":
109
+ binary = "1100";
110
+ break;
111
+ case "D":
112
+ binary = "1101";
113
+ break;
114
+ case "E":
115
+ binary = "1110";
116
+ break;
117
+ case "F":
118
+ binary = "1111";
119
+ break;
120
+ }
121
+ return binary;
122
+ }
123
+
124
+ function hexToBt64(hex) {
125
+ let binary = "";
126
+ for (let i = 0; i < 16; i++) {
127
+ binary += hexToBt4(hex.substring(i, i + 1));
128
+ }
129
+ return binary;
130
+ }
131
+
132
+ function initPermute(originalData) {
133
+ const ipByte = new Array(64);
134
+ for (let i = 0, m = 1, n = 0; i < 4; i++, m += 2, n += 2) {
135
+ for (let j = 7, k = 0; j >= 0; j--, k++) {
136
+ ipByte[i * 8 + k] = originalData[j * 8 + m];
137
+ ipByte[i * 8 + k + 32] = originalData[j * 8 + n];
138
+ }
139
+ }
140
+ return ipByte;
141
+ }
142
+
143
+ function expandPermute(rightData) {
144
+ const epByte = new Array(48);
145
+ for (let i = 0; i < 8; i++) {
146
+ if (i == 0) {
147
+ epByte[i * 6 + 0] = rightData[31];
148
+ } else {
149
+ epByte[i * 6 + 0] = rightData[i * 4 - 1];
150
+ }
151
+ epByte[i * 6 + 1] = rightData[i * 4 + 0];
152
+ epByte[i * 6 + 2] = rightData[i * 4 + 1];
153
+ epByte[i * 6 + 3] = rightData[i * 4 + 2];
154
+ epByte[i * 6 + 4] = rightData[i * 4 + 3];
155
+ if (i == 7) {
156
+ epByte[i * 6 + 5] = rightData[0];
157
+ } else {
158
+ epByte[i * 6 + 5] = rightData[i * 4 + 4];
159
+ }
160
+ }
161
+ return epByte;
162
+ }
163
+
164
+ function xor(byteOne, byteTwo) {
165
+ const xorByte = new Array(byteOne.length);
166
+ for (let i = 0; i < byteOne.length; i++) {
167
+ xorByte[i] = byteOne[i] ^ byteTwo[i];
168
+ }
169
+ return xorByte;
170
+ }
171
+
172
+ function getBoxBinary(i) {
173
+ let binary = "";
174
+ switch (i) {
175
+ case 0:
176
+ binary = "0000";
177
+ break;
178
+ case 1:
179
+ binary = "0001";
180
+ break;
181
+ case 2:
182
+ binary = "0010";
183
+ break;
184
+ case 3:
185
+ binary = "0011";
186
+ break;
187
+ case 4:
188
+ binary = "0100";
189
+ break;
190
+ case 5:
191
+ binary = "0101";
192
+ break;
193
+ case 6:
194
+ binary = "0110";
195
+ break;
196
+ case 7:
197
+ binary = "0111";
198
+ break;
199
+ case 8:
200
+ binary = "1000";
201
+ break;
202
+ case 9:
203
+ binary = "1001";
204
+ break;
205
+ case 10:
206
+ binary = "1010";
207
+ break;
208
+ case 11:
209
+ binary = "1011";
210
+ break;
211
+ case 12:
212
+ binary = "1100";
213
+ break;
214
+ case 13:
215
+ binary = "1101";
216
+ break;
217
+ case 14:
218
+ binary = "1110";
219
+ break;
220
+ case 15:
221
+ binary = "1111";
222
+ break;
223
+ }
224
+ return binary;
225
+ }
226
+
227
+ function sBoxPermute(expandByte) {
228
+ const sBoxByte = new Array(32);
229
+ let binary = "";
230
+ const s1 = [
231
+ [14, 4, 13, 1, 2, 15, 11, 8, 3, 10, 6, 12, 5, 9, 0, 7],
232
+ [0, 15, 7, 4, 14, 2, 13, 1, 10, 6, 12, 11, 9, 5, 3, 8],
233
+ [4, 1, 14, 8, 13, 6, 2, 11, 15, 12, 9, 7, 3, 10, 5, 0],
234
+ [15, 12, 8, 2, 4, 9, 1, 7, 5, 11, 3, 14, 10, 0, 6, 13]
235
+ ];
236
+
237
+ /* Table - s2 */
238
+ const s2 = [
239
+ [15, 1, 8, 14, 6, 11, 3, 4, 9, 7, 2, 13, 12, 0, 5, 10],
240
+ [3, 13, 4, 7, 15, 2, 8, 14, 12, 0, 1, 10, 6, 9, 11, 5],
241
+ [0, 14, 7, 11, 10, 4, 13, 1, 5, 8, 12, 6, 9, 3, 2, 15],
242
+ [13, 8, 10, 1, 3, 15, 4, 2, 11, 6, 7, 12, 0, 5, 14, 9]
243
+ ];
244
+
245
+ /* Table - s3 */
246
+ const s3 = [
247
+ [10, 0, 9, 14, 6, 3, 15, 5, 1, 13, 12, 7, 11, 4, 2, 8],
248
+ [13, 7, 0, 9, 3, 4, 6, 10, 2, 8, 5, 14, 12, 11, 15, 1],
249
+ [13, 6, 4, 9, 8, 15, 3, 0, 11, 1, 2, 12, 5, 10, 14, 7],
250
+ [1, 10, 13, 0, 6, 9, 8, 7, 4, 15, 14, 3, 11, 5, 2, 12]
251
+ ];
252
+ /* Table - s4 */
253
+ const s4 = [
254
+ [7, 13, 14, 3, 0, 6, 9, 10, 1, 2, 8, 5, 11, 12, 4, 15],
255
+ [13, 8, 11, 5, 6, 15, 0, 3, 4, 7, 2, 12, 1, 10, 14, 9],
256
+ [10, 6, 9, 0, 12, 11, 7, 13, 15, 1, 3, 14, 5, 2, 8, 4],
257
+ [3, 15, 0, 6, 10, 1, 13, 8, 9, 4, 5, 11, 12, 7, 2, 14]
258
+ ];
259
+
260
+ /* Table - s5 */
261
+ const s5 = [
262
+ [2, 12, 4, 1, 7, 10, 11, 6, 8, 5, 3, 15, 13, 0, 14, 9],
263
+ [14, 11, 2, 12, 4, 7, 13, 1, 5, 0, 15, 10, 3, 9, 8, 6],
264
+ [4, 2, 1, 11, 10, 13, 7, 8, 15, 9, 12, 5, 6, 3, 0, 14],
265
+ [11, 8, 12, 7, 1, 14, 2, 13, 6, 15, 0, 9, 10, 4, 5, 3]
266
+ ];
267
+
268
+ /* Table - s6 */
269
+ const s6 = [
270
+ [12, 1, 10, 15, 9, 2, 6, 8, 0, 13, 3, 4, 14, 7, 5, 11],
271
+ [10, 15, 4, 2, 7, 12, 9, 5, 6, 1, 13, 14, 0, 11, 3, 8],
272
+ [9, 14, 15, 5, 2, 8, 12, 3, 7, 0, 4, 10, 1, 13, 11, 6],
273
+ [4, 3, 2, 12, 9, 5, 15, 10, 11, 14, 1, 7, 6, 0, 8, 13]
274
+ ];
275
+
276
+ /* Table - s7 */
277
+ const s7 = [
278
+ [4, 11, 2, 14, 15, 0, 8, 13, 3, 12, 9, 7, 5, 10, 6, 1],
279
+ [13, 0, 11, 7, 4, 9, 1, 10, 14, 3, 5, 12, 2, 15, 8, 6],
280
+ [1, 4, 11, 13, 12, 3, 7, 14, 10, 15, 6, 8, 0, 5, 9, 2],
281
+ [6, 11, 13, 8, 1, 4, 10, 7, 9, 5, 0, 15, 14, 2, 3, 12]
282
+ ];
283
+
284
+ /* Table - s8 */
285
+ const s8 = [
286
+ [13, 2, 8, 4, 6, 15, 11, 1, 10, 9, 3, 14, 5, 0, 12, 7],
287
+ [1, 15, 13, 8, 10, 3, 7, 4, 12, 5, 6, 11, 0, 14, 9, 2],
288
+ [7, 11, 4, 1, 9, 12, 14, 2, 0, 6, 10, 13, 15, 3, 5, 8],
289
+ [2, 1, 14, 7, 4, 10, 8, 13, 15, 12, 9, 0, 3, 5, 6, 11]
290
+ ];
291
+
292
+ for (let m = 0; m < 8; m++) {
293
+ let i = 0,
294
+ j = 0;
295
+ i = expandByte[m * 6 + 0] * 2 + expandByte[m * 6 + 5];
296
+ j =
297
+ expandByte[m * 6 + 1] * 2 * 2 * 2 +
298
+ expandByte[m * 6 + 2] * 2 * 2 +
299
+ expandByte[m * 6 + 3] * 2 +
300
+ expandByte[m * 6 + 4];
301
+ switch (m) {
302
+ case 0:
303
+ binary = getBoxBinary(s1[i][j]);
304
+ break;
305
+ case 1:
306
+ binary = getBoxBinary(s2[i][j]);
307
+ break;
308
+ case 2:
309
+ binary = getBoxBinary(s3[i][j]);
310
+ break;
311
+ case 3:
312
+ binary = getBoxBinary(s4[i][j]);
313
+ break;
314
+ case 4:
315
+ binary = getBoxBinary(s5[i][j]);
316
+ break;
317
+ case 5:
318
+ binary = getBoxBinary(s6[i][j]);
319
+ break;
320
+ case 6:
321
+ binary = getBoxBinary(s7[i][j]);
322
+ break;
323
+ case 7:
324
+ binary = getBoxBinary(s8[i][j]);
325
+ break;
326
+ }
327
+ sBoxByte[m * 4 + 0] = parseInt(binary.substring(0, 1));
328
+ sBoxByte[m * 4 + 1] = parseInt(binary.substring(1, 2));
329
+ sBoxByte[m * 4 + 2] = parseInt(binary.substring(2, 3));
330
+ sBoxByte[m * 4 + 3] = parseInt(binary.substring(3, 4));
331
+ }
332
+ return sBoxByte;
333
+ }
334
+
335
+ function pPermute(sBoxByte) {
336
+ const pBoxPermute = new Array(32);
337
+ pBoxPermute[0] = sBoxByte[15];
338
+ pBoxPermute[1] = sBoxByte[6];
339
+ pBoxPermute[2] = sBoxByte[19];
340
+ pBoxPermute[3] = sBoxByte[20];
341
+ pBoxPermute[4] = sBoxByte[28];
342
+ pBoxPermute[5] = sBoxByte[11];
343
+ pBoxPermute[6] = sBoxByte[27];
344
+ pBoxPermute[7] = sBoxByte[16];
345
+ pBoxPermute[8] = sBoxByte[0];
346
+ pBoxPermute[9] = sBoxByte[14];
347
+ pBoxPermute[10] = sBoxByte[22];
348
+ pBoxPermute[11] = sBoxByte[25];
349
+ pBoxPermute[12] = sBoxByte[4];
350
+ pBoxPermute[13] = sBoxByte[17];
351
+ pBoxPermute[14] = sBoxByte[30];
352
+ pBoxPermute[15] = sBoxByte[9];
353
+ pBoxPermute[16] = sBoxByte[1];
354
+ pBoxPermute[17] = sBoxByte[7];
355
+ pBoxPermute[18] = sBoxByte[23];
356
+ pBoxPermute[19] = sBoxByte[13];
357
+ pBoxPermute[20] = sBoxByte[31];
358
+ pBoxPermute[21] = sBoxByte[26];
359
+ pBoxPermute[22] = sBoxByte[2];
360
+ pBoxPermute[23] = sBoxByte[8];
361
+ pBoxPermute[24] = sBoxByte[18];
362
+ pBoxPermute[25] = sBoxByte[12];
363
+ pBoxPermute[26] = sBoxByte[29];
364
+ pBoxPermute[27] = sBoxByte[5];
365
+ pBoxPermute[28] = sBoxByte[21];
366
+ pBoxPermute[29] = sBoxByte[10];
367
+ pBoxPermute[30] = sBoxByte[3];
368
+ pBoxPermute[31] = sBoxByte[24];
369
+ return pBoxPermute;
370
+ }
371
+
372
+ function finallyPermute(endByte) {
373
+ const fpByte = new Array(64);
374
+ fpByte[0] = endByte[39];
375
+ fpByte[1] = endByte[7];
376
+ fpByte[2] = endByte[47];
377
+ fpByte[3] = endByte[15];
378
+ fpByte[4] = endByte[55];
379
+ fpByte[5] = endByte[23];
380
+ fpByte[6] = endByte[63];
381
+ fpByte[7] = endByte[31];
382
+ fpByte[8] = endByte[38];
383
+ fpByte[9] = endByte[6];
384
+ fpByte[10] = endByte[46];
385
+ fpByte[11] = endByte[14];
386
+ fpByte[12] = endByte[54];
387
+ fpByte[13] = endByte[22];
388
+ fpByte[14] = endByte[62];
389
+ fpByte[15] = endByte[30];
390
+ fpByte[16] = endByte[37];
391
+ fpByte[17] = endByte[5];
392
+ fpByte[18] = endByte[45];
393
+ fpByte[19] = endByte[13];
394
+ fpByte[20] = endByte[53];
395
+ fpByte[21] = endByte[21];
396
+ fpByte[22] = endByte[61];
397
+ fpByte[23] = endByte[29];
398
+ fpByte[24] = endByte[36];
399
+ fpByte[25] = endByte[4];
400
+ fpByte[26] = endByte[44];
401
+ fpByte[27] = endByte[12];
402
+ fpByte[28] = endByte[52];
403
+ fpByte[29] = endByte[20];
404
+ fpByte[30] = endByte[60];
405
+ fpByte[31] = endByte[28];
406
+ fpByte[32] = endByte[35];
407
+ fpByte[33] = endByte[3];
408
+ fpByte[34] = endByte[43];
409
+ fpByte[35] = endByte[11];
410
+ fpByte[36] = endByte[51];
411
+ fpByte[37] = endByte[19];
412
+ fpByte[38] = endByte[59];
413
+ fpByte[39] = endByte[27];
414
+ fpByte[40] = endByte[34];
415
+ fpByte[41] = endByte[2];
416
+ fpByte[42] = endByte[42];
417
+ fpByte[43] = endByte[10];
418
+ fpByte[44] = endByte[50];
419
+ fpByte[45] = endByte[18];
420
+ fpByte[46] = endByte[58];
421
+ fpByte[47] = endByte[26];
422
+ fpByte[48] = endByte[33];
423
+ fpByte[49] = endByte[1];
424
+ fpByte[50] = endByte[41];
425
+ fpByte[51] = endByte[9];
426
+ fpByte[52] = endByte[49];
427
+ fpByte[53] = endByte[17];
428
+ fpByte[54] = endByte[57];
429
+ fpByte[55] = endByte[25];
430
+ fpByte[56] = endByte[32];
431
+ fpByte[57] = endByte[0];
432
+ fpByte[58] = endByte[40];
433
+ fpByte[59] = endByte[8];
434
+ fpByte[60] = endByte[48];
435
+ fpByte[61] = endByte[16];
436
+ fpByte[62] = endByte[56];
437
+ fpByte[63] = endByte[24];
438
+ return fpByte;
439
+ }
440
+
441
+ /*
442
+ * generate 16 keys for xor
443
+ *
444
+ */
445
+ function generateKeys(keyByte) {
446
+ const key = new Array(56);
447
+ const keys = [];
448
+
449
+ keys[0] = [];
450
+ keys[1] = [];
451
+ keys[2] = [];
452
+ keys[3] = [];
453
+ keys[4] = [];
454
+ keys[5] = [];
455
+ keys[6] = [];
456
+ keys[7] = [];
457
+ keys[8] = [];
458
+ keys[9] = [];
459
+ keys[10] = [];
460
+ keys[11] = [];
461
+ keys[12] = [];
462
+ keys[13] = [];
463
+ keys[14] = [];
464
+ keys[15] = [];
465
+ const loop = [1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1];
466
+
467
+ for (let i = 0; i < 7; i++) {
468
+ for (let j = 0, k = 7; j < 8; j++, k--) {
469
+ key[i * 8 + j] = keyByte[8 * k + i];
470
+ }
471
+ }
472
+
473
+ let i = 0;
474
+ for (i = 0; i < 16; i++) {
475
+ let tempLeft = 0;
476
+ let tempRight = 0;
477
+ for (let j = 0; j < loop[i]; j++) {
478
+ tempLeft = key[0];
479
+ tempRight = key[28];
480
+ for (let k = 0; k < 27; k++) {
481
+ key[k] = key[k + 1];
482
+ key[28 + k] = key[29 + k];
483
+ }
484
+ key[27] = tempLeft;
485
+ key[55] = tempRight;
486
+ }
487
+ const tempKey = new Array(48);
488
+ tempKey[0] = key[13];
489
+ tempKey[1] = key[16];
490
+ tempKey[2] = key[10];
491
+ tempKey[3] = key[23];
492
+ tempKey[4] = key[0];
493
+ tempKey[5] = key[4];
494
+ tempKey[6] = key[2];
495
+ tempKey[7] = key[27];
496
+ tempKey[8] = key[14];
497
+ tempKey[9] = key[5];
498
+ tempKey[10] = key[20];
499
+ tempKey[11] = key[9];
500
+ tempKey[12] = key[22];
501
+ tempKey[13] = key[18];
502
+ tempKey[14] = key[11];
503
+ tempKey[15] = key[3];
504
+ tempKey[16] = key[25];
505
+ tempKey[17] = key[7];
506
+ tempKey[18] = key[15];
507
+ tempKey[19] = key[6];
508
+ tempKey[20] = key[26];
509
+ tempKey[21] = key[19];
510
+ tempKey[22] = key[12];
511
+ tempKey[23] = key[1];
512
+ tempKey[24] = key[40];
513
+ tempKey[25] = key[51];
514
+ tempKey[26] = key[30];
515
+ tempKey[27] = key[36];
516
+ tempKey[28] = key[46];
517
+ tempKey[29] = key[54];
518
+ tempKey[30] = key[29];
519
+ tempKey[31] = key[39];
520
+ tempKey[32] = key[50];
521
+ tempKey[33] = key[44];
522
+ tempKey[34] = key[32];
523
+ tempKey[35] = key[47];
524
+ tempKey[36] = key[43];
525
+ tempKey[37] = key[48];
526
+ tempKey[38] = key[38];
527
+ tempKey[39] = key[55];
528
+ tempKey[40] = key[33];
529
+ tempKey[41] = key[52];
530
+ tempKey[42] = key[45];
531
+ tempKey[43] = key[41];
532
+ tempKey[44] = key[49];
533
+ tempKey[45] = key[35];
534
+ tempKey[46] = key[28];
535
+ tempKey[47] = key[31];
536
+ let m;
537
+ switch (i) {
538
+ case 0:
539
+ for (m = 0; m < 48; m++) {
540
+ keys[0][m] = tempKey[m];
541
+ }
542
+ break;
543
+ case 1:
544
+ for (m = 0; m < 48; m++) {
545
+ keys[1][m] = tempKey[m];
546
+ }
547
+ break;
548
+ case 2:
549
+ for (m = 0; m < 48; m++) {
550
+ keys[2][m] = tempKey[m];
551
+ }
552
+ break;
553
+ case 3:
554
+ for (m = 0; m < 48; m++) {
555
+ keys[3][m] = tempKey[m];
556
+ }
557
+ break;
558
+ case 4:
559
+ for (m = 0; m < 48; m++) {
560
+ keys[4][m] = tempKey[m];
561
+ }
562
+ break;
563
+ case 5:
564
+ for (m = 0; m < 48; m++) {
565
+ keys[5][m] = tempKey[m];
566
+ }
567
+ break;
568
+ case 6:
569
+ for (m = 0; m < 48; m++) {
570
+ keys[6][m] = tempKey[m];
571
+ }
572
+ break;
573
+ case 7:
574
+ for (m = 0; m < 48; m++) {
575
+ keys[7][m] = tempKey[m];
576
+ }
577
+ break;
578
+ case 8:
579
+ for (m = 0; m < 48; m++) {
580
+ keys[8][m] = tempKey[m];
581
+ }
582
+ break;
583
+ case 9:
584
+ for (m = 0; m < 48; m++) {
585
+ keys[9][m] = tempKey[m];
586
+ }
587
+ break;
588
+ case 10:
589
+ for (m = 0; m < 48; m++) {
590
+ keys[10][m] = tempKey[m];
591
+ }
592
+ break;
593
+ case 11:
594
+ for (m = 0; m < 48; m++) {
595
+ keys[11][m] = tempKey[m];
596
+ }
597
+ break;
598
+ case 12:
599
+ for (m = 0; m < 48; m++) {
600
+ keys[12][m] = tempKey[m];
601
+ }
602
+ break;
603
+ case 13:
604
+ for (m = 0; m < 48; m++) {
605
+ keys[13][m] = tempKey[m];
606
+ }
607
+ break;
608
+ case 14:
609
+ for (m = 0; m < 48; m++) {
610
+ keys[14][m] = tempKey[m];
611
+ }
612
+ break;
613
+ case 15:
614
+ for (m = 0; m < 48; m++) {
615
+ keys[15][m] = tempKey[m];
616
+ }
617
+ break;
618
+ }
619
+ }
620
+ return keys;
621
+ }
622
+ function strToBt(str) {
623
+ const leng = str.length;
624
+ const bt = new Array(64);
625
+ let i = 0,
626
+ j = 0,
627
+ p = 0,
628
+ q = 0;
629
+ if (leng < 4) {
630
+ for (i = 0; i < leng; i++) {
631
+ const k = str.charCodeAt(i);
632
+ for (j = 0; j < 16; j++) {
633
+ let pow = 1,
634
+ m = 0;
635
+ for (m = 15; m > j; m--) {
636
+ pow *= 2;
637
+ }
638
+ bt[16 * i + j] = parseInt(k / pow) % 2;
639
+ }
640
+ }
641
+ for (p = leng; p < 4; p++) {
642
+ const k = 0;
643
+ for (q = 0; q < 16; q++) {
644
+ let pow = 1,
645
+ m = 0;
646
+ for (m = 15; m > q; m--) {
647
+ pow *= 2;
648
+ }
649
+ bt[16 * p + q] = parseInt(k / pow) % 2;
650
+ }
651
+ }
652
+ } else {
653
+ for (i = 0; i < 4; i++) {
654
+ const k = str.charCodeAt(i);
655
+ for (j = 0; j < 16; j++) {
656
+ let pow = 1;
657
+ for (let m = 15; m > j; m--) {
658
+ pow *= 2;
659
+ }
660
+ bt[16 * i + j] = parseInt(k / pow) % 2;
661
+ }
662
+ }
663
+ }
664
+ return bt;
665
+ }
666
+ function getKeyBytes(key) {
667
+ const keyBytes = [];
668
+ const leng = key.length;
669
+ const iterator = parseInt(leng / 4);
670
+ const remainder = leng % 4;
671
+ let i = 0;
672
+ for (i = 0; i < iterator; i++) {
673
+ keyBytes[i] = strToBt(key.substring(i * 4 + 0, i * 4 + 4));
674
+ }
675
+ if (remainder > 0) {
676
+ keyBytes[i] = strToBt(key.substring(i * 4 + 0, leng));
677
+ }
678
+ return keyBytes;
679
+ }
680
+
681
+ function enc(dataByte, keyByte) {
682
+ const keys = generateKeys(keyByte);
683
+ const ipByte = initPermute(dataByte);
684
+ const ipLeft = new Array(32);
685
+ const ipRight = new Array(32);
686
+ const tempLeft = new Array(32);
687
+ let i = 0,
688
+ k = 0,
689
+ m = 0,
690
+ n = 0;
691
+ for (k = 0; k < 32; k++) {
692
+ ipLeft[k] = ipByte[k];
693
+ ipRight[k] = ipByte[32 + k];
694
+ }
695
+ for (i = 0; i < 16; i++) {
696
+ for (let j = 0; j < 32; j++) {
697
+ tempLeft[j] = ipLeft[j];
698
+ ipLeft[j] = ipRight[j];
699
+ }
700
+ const key = new Array(48);
701
+ for (m = 0; m < 48; m++) {
702
+ key[m] = keys[i][m];
703
+ }
704
+ const tempRight = xor(
705
+ pPermute(sBoxPermute(xor(expandPermute(ipRight), key))),
706
+ tempLeft
707
+ );
708
+ for (n = 0; n < 32; n++) {
709
+ ipRight[n] = tempRight[n];
710
+ }
711
+ }
712
+
713
+ const finalData = new Array(64);
714
+ for (let i = 0; i < 32; i++) {
715
+ finalData[i] = ipRight[i];
716
+ finalData[32 + i] = ipLeft[i];
717
+ }
718
+ return finallyPermute(finalData);
719
+ }
720
+
721
+ function dec(dataByte, keyByte) {
722
+ const keys = generateKeys(keyByte);
723
+ const ipByte = initPermute(dataByte);
724
+ const ipLeft = new Array(32);
725
+ const ipRight = new Array(32);
726
+ const tempLeft = new Array(32);
727
+ let i = 0,
728
+ j = 0,
729
+ k = 0,
730
+ m = 0,
731
+ n = 0;
732
+ for (k = 0; k < 32; k++) {
733
+ ipLeft[k] = ipByte[k];
734
+ ipRight[k] = ipByte[32 + k];
735
+ }
736
+ for (i = 15; i >= 0; i--) {
737
+ for (j = 0; j < 32; j++) {
738
+ tempLeft[j] = ipLeft[j];
739
+ ipLeft[j] = ipRight[j];
740
+ }
741
+ const key = new Array(48);
742
+ for (m = 0; m < 48; m++) {
743
+ key[m] = keys[i][m];
744
+ }
745
+
746
+ const tempRight = xor(
747
+ pPermute(sBoxPermute(xor(expandPermute(ipRight), key))),
748
+ tempLeft
749
+ );
750
+ for (n = 0; n < 32; n++) {
751
+ ipRight[n] = tempRight[n];
752
+ }
753
+ }
754
+
755
+ const finalData = new Array(64);
756
+ for (i = 0; i < 32; i++) {
757
+ finalData[i] = ipRight[i];
758
+ finalData[32 + i] = ipLeft[i];
759
+ }
760
+ return finallyPermute(finalData);
761
+ }
762
+
763
+ /*
764
+ * 简单加密
765
+ * */
766
+ export function compileStr(code) {
767
+ let c = String.fromCharCode(code.charCodeAt(0) + code.length);
768
+ for (let i = 1; i < code.length; i++) {
769
+ c += String.fromCharCode(code.charCodeAt(i) + code.charCodeAt(i - 1));
770
+ }
771
+ return escape(c);
772
+ }
773
+ /*
774
+ * 简单解密
775
+ * */
776
+
777
+ export function uncompileStr(code) {
778
+ code = unescape(code);
779
+ let c = String.fromCharCode(code.charCodeAt(0) - code.length);
780
+ for (let i = 1; i < code.length; i++) {
781
+ c += String.fromCharCode(code.charCodeAt(i) - c.charCodeAt(i - 1));
782
+ }
783
+ return c;
784
+ }
785
+ function byteToString(byteData) {
786
+ let str = "";
787
+ for (let i = 0; i < 4; i++) {
788
+ let count = 0;
789
+ for (let j = 0; j < 16; j++) {
790
+ let pow = 1;
791
+ for (let m = 15; m > j; m--) {
792
+ pow *= 2;
793
+ }
794
+ count += byteData[16 * i + j] * pow;
795
+ }
796
+ if (count != 0) {
797
+ str += String.fromCharCode(count);
798
+ }
799
+ }
800
+ return str;
801
+ }
802
+ /**
803
+ * 加密方法
804
+ * @param data
805
+ * @param firstKey
806
+ * @param secondKey
807
+ * @param thirdKey
808
+ * @returns {string}
809
+ */
810
+ export function strEnc(data, firstKey, secondKey, thirdKey) {
811
+ const leng = data.length;
812
+ let encData = "";
813
+ let firstKeyBt,
814
+ secondKeyBt,
815
+ thirdKeyBt,
816
+ firstLength,
817
+ secondLength,
818
+ thirdLength;
819
+ if (firstKey != null && firstKey != "") {
820
+ firstKeyBt = getKeyBytes(firstKey);
821
+ firstLength = firstKeyBt.length;
822
+ }
823
+ if (secondKey != null && secondKey != "") {
824
+ secondKeyBt = getKeyBytes(secondKey);
825
+ secondLength = secondKeyBt.length;
826
+ }
827
+ if (thirdKey != null && thirdKey != "") {
828
+ thirdKeyBt = getKeyBytes(thirdKey);
829
+ thirdLength = thirdKeyBt.length;
830
+ }
831
+
832
+ if (leng > 0) {
833
+ if (leng < 4) {
834
+ const bt = strToBt(data);
835
+ let encByte;
836
+ if (
837
+ firstKey != null &&
838
+ firstKey != "" &&
839
+ secondKey != null &&
840
+ secondKey != "" &&
841
+ thirdKey != null &&
842
+ thirdKey != ""
843
+ ) {
844
+ let tempBt;
845
+ let x, y, z;
846
+ tempBt = bt;
847
+ for (x = 0; x < firstLength; x++) {
848
+ tempBt = enc(tempBt, firstKeyBt[x]);
849
+ }
850
+ for (y = 0; y < secondLength; y++) {
851
+ tempBt = enc(tempBt, secondKeyBt[y]);
852
+ }
853
+ for (z = 0; z < thirdLength; z++) {
854
+ tempBt = enc(tempBt, thirdKeyBt[z]);
855
+ }
856
+ encByte = tempBt;
857
+ } else {
858
+ if (
859
+ firstKey != null &&
860
+ firstKey != "" &&
861
+ secondKey != null &&
862
+ secondKey != ""
863
+ ) {
864
+ let tempBt;
865
+ let x, y;
866
+ tempBt = bt;
867
+ for (x = 0; x < firstLength; x++) {
868
+ tempBt = enc(tempBt, firstKeyBt[x]);
869
+ }
870
+ for (y = 0; y < secondLength; y++) {
871
+ tempBt = enc(tempBt, secondKeyBt[y]);
872
+ }
873
+ encByte = tempBt;
874
+ } else {
875
+ if (firstKey != null && firstKey != "") {
876
+ let tempBt;
877
+ let x = 0;
878
+ tempBt = bt;
879
+ for (x = 0; x < firstLength; x++) {
880
+ tempBt = enc(tempBt, firstKeyBt[x]);
881
+ }
882
+ encByte = tempBt;
883
+ }
884
+ }
885
+ }
886
+ encData = bt64ToHex(encByte);
887
+ } else {
888
+ const iterator = parseInt(leng / 4);
889
+ const remainder = leng % 4;
890
+ let i = 0;
891
+ for (i = 0; i < iterator; i++) {
892
+ const tempData = data.substring(i * 4 + 0, i * 4 + 4);
893
+ const tempByte = strToBt(tempData);
894
+ let encByte;
895
+ if (
896
+ firstKey != null &&
897
+ firstKey != "" &&
898
+ secondKey != null &&
899
+ secondKey != "" &&
900
+ thirdKey != null &&
901
+ thirdKey != ""
902
+ ) {
903
+ let tempBt;
904
+ let x, y, z;
905
+ tempBt = tempByte;
906
+ for (x = 0; x < firstLength; x++) {
907
+ tempBt = enc(tempBt, firstKeyBt[x]);
908
+ }
909
+ for (y = 0; y < secondLength; y++) {
910
+ tempBt = enc(tempBt, secondKeyBt[y]);
911
+ }
912
+ for (z = 0; z < thirdLength; z++) {
913
+ tempBt = enc(tempBt, thirdKeyBt[z]);
914
+ }
915
+ encByte = tempBt;
916
+ } else {
917
+ if (
918
+ firstKey != null &&
919
+ firstKey != "" &&
920
+ secondKey != null &&
921
+ secondKey != ""
922
+ ) {
923
+ let tempBt;
924
+ let x, y;
925
+ tempBt = tempByte;
926
+ for (x = 0; x < firstLength; x++) {
927
+ tempBt = enc(tempBt, firstKeyBt[x]);
928
+ }
929
+ for (y = 0; y < secondLength; y++) {
930
+ tempBt = enc(tempBt, secondKeyBt[y]);
931
+ }
932
+ encByte = tempBt;
933
+ } else {
934
+ if (firstKey != null && firstKey != "") {
935
+ let tempBt;
936
+ let x;
937
+ tempBt = tempByte;
938
+ for (x = 0; x < firstLength; x++) {
939
+ tempBt = enc(tempBt, firstKeyBt[x]);
940
+ }
941
+ encByte = tempBt;
942
+ }
943
+ }
944
+ }
945
+ encData += bt64ToHex(encByte);
946
+ }
947
+ if (remainder > 0) {
948
+ const remainderData = data.substring(iterator * 4 + 0, leng);
949
+ const tempByte = strToBt(remainderData);
950
+ let encByte;
951
+ if (
952
+ firstKey != null &&
953
+ firstKey != "" &&
954
+ secondKey != null &&
955
+ secondKey != "" &&
956
+ thirdKey != null &&
957
+ thirdKey != ""
958
+ ) {
959
+ let tempBt;
960
+ let x, y, z;
961
+ tempBt = tempByte;
962
+ for (x = 0; x < firstLength; x++) {
963
+ tempBt = enc(tempBt, firstKeyBt[x]);
964
+ }
965
+ for (y = 0; y < secondLength; y++) {
966
+ tempBt = enc(tempBt, secondKeyBt[y]);
967
+ }
968
+ for (z = 0; z < thirdLength; z++) {
969
+ tempBt = enc(tempBt, thirdKeyBt[z]);
970
+ }
971
+ encByte = tempBt;
972
+ } else {
973
+ if (
974
+ firstKey != null &&
975
+ firstKey != "" &&
976
+ secondKey != null &&
977
+ secondKey != ""
978
+ ) {
979
+ let tempBt;
980
+ let x, y;
981
+ tempBt = tempByte;
982
+ for (x = 0; x < firstLength; x++) {
983
+ tempBt = enc(tempBt, firstKeyBt[x]);
984
+ }
985
+ for (y = 0; y < secondLength; y++) {
986
+ tempBt = enc(tempBt, secondKeyBt[y]);
987
+ }
988
+ encByte = tempBt;
989
+ } else {
990
+ if (firstKey != null && firstKey != "") {
991
+ let tempBt;
992
+ let x;
993
+ tempBt = tempByte;
994
+ for (x = 0; x < firstLength; x++) {
995
+ tempBt = enc(tempBt, firstKeyBt[x]);
996
+ }
997
+ encByte = tempBt;
998
+ }
999
+ }
1000
+ }
1001
+ encData += bt64ToHex(encByte);
1002
+ }
1003
+ }
1004
+ }
1005
+ return encData;
1006
+ }
1007
+
1008
+ /*
1009
+ * decrypt the encrypted string to the original string
1010
+ *
1011
+ * return the original string
1012
+ */
1013
+ /**
1014
+ * 解密方法
1015
+ * @param data
1016
+ * @param firstKey
1017
+ * @param secondKey
1018
+ * @param thirdKey
1019
+ * @returns {string|string}
1020
+ */
1021
+ export function strDec(data, firstKey, secondKey, thirdKey) {
1022
+ const leng = data.length;
1023
+ let decStr = "";
1024
+ let firstKeyBt,
1025
+ secondKeyBt,
1026
+ thirdKeyBt,
1027
+ firstLength,
1028
+ secondLength,
1029
+ thirdLength;
1030
+ if (firstKey != null && firstKey != "") {
1031
+ firstKeyBt = getKeyBytes(firstKey);
1032
+ firstLength = firstKeyBt.length;
1033
+ }
1034
+ if (secondKey != null && secondKey != "") {
1035
+ secondKeyBt = getKeyBytes(secondKey);
1036
+ secondLength = secondKeyBt.length;
1037
+ }
1038
+ if (thirdKey != null && thirdKey != "") {
1039
+ thirdKeyBt = getKeyBytes(thirdKey);
1040
+ thirdLength = thirdKeyBt.length;
1041
+ }
1042
+
1043
+ const iterator = parseInt(leng / 16);
1044
+ let i = 0;
1045
+ for (i = 0; i < iterator; i++) {
1046
+ const tempData = data.substring(i * 16 + 0, i * 16 + 16);
1047
+ const strByte = hexToBt64(tempData);
1048
+ const intByte = new Array(64);
1049
+ let j = 0;
1050
+ for (j = 0; j < 64; j++) {
1051
+ intByte[j] = parseInt(strByte.substring(j, j + 1));
1052
+ }
1053
+ let decByte;
1054
+ if (
1055
+ firstKey != null &&
1056
+ firstKey != "" &&
1057
+ secondKey != null &&
1058
+ secondKey != "" &&
1059
+ thirdKey != null &&
1060
+ thirdKey != ""
1061
+ ) {
1062
+ let tempBt;
1063
+ let x, y, z;
1064
+ tempBt = intByte;
1065
+ for (x = thirdLength - 1; x >= 0; x--) {
1066
+ tempBt = dec(tempBt, thirdKeyBt[x]);
1067
+ }
1068
+ for (y = secondLength - 1; y >= 0; y--) {
1069
+ tempBt = dec(tempBt, secondKeyBt[y]);
1070
+ }
1071
+ for (z = firstLength - 1; z >= 0; z--) {
1072
+ tempBt = dec(tempBt, firstKeyBt[z]);
1073
+ }
1074
+ decByte = tempBt;
1075
+ } else {
1076
+ if (
1077
+ firstKey != null &&
1078
+ firstKey != "" &&
1079
+ secondKey != null &&
1080
+ secondKey != ""
1081
+ ) {
1082
+ let tempBt;
1083
+ let x, y;
1084
+ tempBt = intByte;
1085
+ for (x = secondLength - 1; x >= 0; x--) {
1086
+ tempBt = dec(tempBt, secondKeyBt[x]);
1087
+ }
1088
+ for (y = firstLength - 1; y >= 0; y--) {
1089
+ tempBt = dec(tempBt, firstKeyBt[y]);
1090
+ }
1091
+ decByte = tempBt;
1092
+ } else {
1093
+ if (firstKey != null && firstKey != "") {
1094
+ let tempBt;
1095
+ let x;
1096
+ tempBt = intByte;
1097
+ for (x = firstLength - 1; x >= 0; x--) {
1098
+ tempBt = dec(tempBt, firstKeyBt[x]);
1099
+ }
1100
+ decByte = tempBt;
1101
+ }
1102
+ }
1103
+ }
1104
+ decStr += byteToString(decByte);
1105
+ }
1106
+ return decStr;
1107
+ }