vap1 0.0.1
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.
- package/basetype.d.ts +62 -0
- package/basetype.js +2 -0
- package/components/Box/Box.d.ts +118 -0
- package/components/Box/Box.js +150 -0
- package/components/Box/SelectBar.d.ts +90 -0
- package/components/Box/SelectBar.js +93 -0
- package/components/Box/_register.d.ts +49 -0
- package/components/Box/_register.js +29 -0
- package/components/Box/index.d.ts +9 -0
- package/components/Box/index.js +6 -0
- package/components/Lists/SList.d.ts +58 -0
- package/components/Lists/SList.js +167 -0
- package/components/SearchBar/ActionButtons.d.ts +49 -0
- package/components/SearchBar/ActionButtons.js +96 -0
- package/components/SearchBar/ByField.d.ts +3 -0
- package/components/SearchBar/ByField.js +193 -0
- package/components/SearchBar/ByKeyword.d.ts +3 -0
- package/components/SearchBar/ByKeyword.js +34 -0
- package/components/SearchBar/SearchField.d.ts +15 -0
- package/components/SearchBar/SearchField.js +25 -0
- package/components/SearchBar/SearchTags.d.ts +2 -0
- package/components/SearchBar/SearchTags.js +18 -0
- package/components/SearchBar/_FieldType.d.ts +8 -0
- package/components/SearchBar/_FieldType.js +45 -0
- package/components/SearchBar/_register.d.ts +65 -0
- package/components/SearchBar/_register.js +29 -0
- package/components/SearchBar/index.d.ts +134 -0
- package/components/SearchBar/index.js +33 -0
- package/components/Tables/ApiTable.d.ts +18 -0
- package/components/Tables/ApiTable.js +48 -0
- package/components/Tables/ApiTableModal.d.ts +22 -0
- package/components/Tables/ApiTableModal.js +73 -0
- package/components/Tables/Components/ActionBar.d.ts +56 -0
- package/components/Tables/Components/ActionBar.js +100 -0
- package/components/Tables/Components/Actions.d.ts +47 -0
- package/components/Tables/Components/Actions.js +91 -0
- package/components/Tables/Components/Summary.d.ts +11 -0
- package/components/Tables/Components/Summary.js +11 -0
- package/components/Tables/Components/index.d.ts +17 -0
- package/components/Tables/Components/index.js +19 -0
- package/components/Tables/STable.d.ts +5 -0
- package/components/Tables/STable.js +37 -0
- package/components/Tables/TopTable.d.ts +24 -0
- package/components/Tables/TopTable.js +157 -0
- package/components/Tables/TopTableModal.d.ts +5 -0
- package/components/Tables/TopTableModal.js +20 -0
- package/components/Tables/Util.d.ts +3 -0
- package/components/Tables/Util.js +41 -0
- package/components/Tables/VTable.d.ts +11 -0
- package/components/Tables/VTable.js +237 -0
- package/components/Tables/index.d.ts +81 -0
- package/components/Tables/index.js +20 -0
- package/components/TreeSelect/BaseTreeSelect.d.ts +33 -0
- package/components/TreeSelect/BaseTreeSelect.js +190 -0
- package/components/TreeSelect/DTreeSelect.d.ts +24 -0
- package/components/TreeSelect/DTreeSelect.js +66 -0
- package/components/TreeSelect/FTreeSelect.d.ts +11 -0
- package/components/TreeSelect/FTreeSelect.js +39 -0
- package/components/TreeSelect/STreeSelect.d.ts +14 -0
- package/components/TreeSelect/STreeSelect.js +52 -0
- package/components/TreeSelect/index.d.ts +94 -0
- package/components/TreeSelect/index.js +9 -0
- package/components/Trees/ActionTree.d.ts +54 -0
- package/components/Trees/ActionTree.js +657 -0
- package/components/Trees/BaseTree.d.ts +31 -0
- package/components/Trees/BaseTree.js +185 -0
- package/components/Trees/DTree.d.ts +48 -0
- package/components/Trees/DTree.js +142 -0
- package/components/Trees/FTree.d.ts +33 -0
- package/components/Trees/FTree.js +79 -0
- package/components/Trees/STree.d.ts +21 -0
- package/components/Trees/STree.js +92 -0
- package/components/Trees/index.d.ts +134 -0
- package/components/Trees/index.js +9 -0
- package/components/UForm/FormWrapper.d.ts +22 -0
- package/components/UForm/FormWrapper.js +270 -0
- package/components/UForm/UDescriptions.d.ts +5 -0
- package/components/UForm/UDescriptions.js +134 -0
- package/components/UForm/UForm.d.ts +33 -0
- package/components/UForm/UForm.js +484 -0
- package/components/UForm/UFormModal.d.ts +3 -0
- package/components/UForm/UFormModal.js +149 -0
- package/components/UForm/UInfo.d.ts +10 -0
- package/components/UForm/UInfo.js +75 -0
- package/components/UForm/UInfoModal.d.ts +3 -0
- package/components/UForm/UInfoModal.js +50 -0
- package/components/UForm/UModal.d.ts +3 -0
- package/components/UForm/UModal.js +24 -0
- package/components/UForm/_FieldType.d.ts +8 -0
- package/components/UForm/_FieldType.js +100 -0
- package/components/UForm/_FormUtils.d.ts +5 -0
- package/components/UForm/_FormUtils.js +75 -0
- package/components/UForm/_input.d.ts +59 -0
- package/components/UForm/_input.js +147 -0
- package/components/UForm/_register.d.ts +87 -0
- package/components/UForm/_register.js +44 -0
- package/components/UForm/index.d.ts +387 -0
- package/components/UForm/index.js +15 -0
- package/components/Upload/UploadFile.d.ts +3 -0
- package/components/Upload/UploadFile.js +40 -0
- package/components/Upload/UploadImage.d.ts +24 -0
- package/components/Upload/UploadImage.js +93 -0
- package/components/Upload/UploadModal.d.ts +50 -0
- package/components/Upload/UploadModal.js +140 -0
- package/components/Upload/index.d.ts +77 -0
- package/components/Upload/index.js +9 -0
- package/components/Upload/useUpload.d.ts +15 -0
- package/components/Upload/useUpload.js +93 -0
- package/components/_RegisterUtil.d.ts +1 -0
- package/components/_RegisterUtil.js +25 -0
- package/components/_adapt/Alert.d.ts +11 -0
- package/components/_adapt/Alert.js +43 -0
- package/components/_adapt/Button.d.ts +20 -0
- package/components/_adapt/Button.js +26 -0
- package/components/_adapt/Col.d.ts +53 -0
- package/components/_adapt/Col.js +90 -0
- package/components/_adapt/Collapse.d.ts +30 -0
- package/components/_adapt/Collapse.js +33 -0
- package/components/_adapt/Drawer.d.ts +12 -0
- package/components/_adapt/Drawer.js +11 -0
- package/components/_adapt/Dropdown.d.ts +15 -0
- package/components/_adapt/Dropdown.js +38 -0
- package/components/_adapt/Icon.d.ts +14 -0
- package/components/_adapt/Icon.js +34 -0
- package/components/_adapt/Image.d.ts +4 -0
- package/components/_adapt/Image.js +11 -0
- package/components/_adapt/Menu.d.ts +32 -0
- package/components/_adapt/Menu.js +25 -0
- package/components/_adapt/Modal.d.ts +23 -0
- package/components/_adapt/Modal.js +69 -0
- package/components/_adapt/Popconfirm.d.ts +5 -0
- package/components/_adapt/Popconfirm.js +34 -0
- package/components/_adapt/Popover.d.ts +5 -0
- package/components/_adapt/Popover.js +34 -0
- package/components/_adapt/Progress.d.ts +14 -0
- package/components/_adapt/Progress.js +56 -0
- package/components/_adapt/Row.d.ts +10 -0
- package/components/_adapt/Row.js +23 -0
- package/components/_adapt/Select.d.ts +14 -0
- package/components/_adapt/Select.js +47 -0
- package/components/_adapt/Tag.d.ts +7 -0
- package/components/_adapt/Tag.js +12 -0
- package/components/_adapt/Tooltip.d.ts +5 -0
- package/components/_adapt/Tooltip.js +11 -0
- package/components/_adapt/todo/ColorPicker.d.ts +3 -0
- package/components/_adapt/todo/ColorPicker.js +42 -0
- package/components/_adapt/todo/FloatButton.d.ts +2 -0
- package/components/_adapt/todo/FloatButton.js +6 -0
- package/components/_adapt/todo/Image.d.ts +2 -0
- package/components/_adapt/todo/Image.js +6 -0
- package/components/_adapt/todo/Segmented.d.ts +2 -0
- package/components/_adapt/todo/Segmented.js +6 -0
- package/components/_adapt/todo/Space.d.ts +2 -0
- package/components/_adapt/todo/Space.js +6 -0
- package/components/_adapt/utils.d.ts +12 -0
- package/components/_adapt/utils.js +93 -0
- package/components/_common/AutoComplete.d.ts +32 -0
- package/components/_common/AutoComplete.js +87 -0
- package/components/_common/CountUp.d.ts +38 -0
- package/components/_common/CountUp.js +60 -0
- package/components/_common/DateRange.d.ts +52 -0
- package/components/_common/DateRange.js +108 -0
- package/components/_common/HighLight.d.ts +15 -0
- package/components/_common/HighLight.js +37 -0
- package/components/_common/I18N.d.ts +7 -0
- package/components/_common/I18N.js +6 -0
- package/components/_common/Loading.d.ts +9 -0
- package/components/_common/Loading.js +52 -0
- package/components/_common/MonthRange.d.ts +46 -0
- package/components/_common/MonthRange.js +130 -0
- package/components/_common/PromiseLabel.d.ts +11 -0
- package/components/_common/PromiseLabel.js +34 -0
- package/components/_common/Role.d.ts +5 -0
- package/components/_common/Role.js +11 -0
- package/components/_common/Upagination.d.ts +21 -0
- package/components/_common/Upagination.js +106 -0
- package/components/_setup/Const.d.ts +205 -0
- package/components/_setup/Const.js +112 -0
- package/components/_setup/I18N/enUS.d.ts +1 -0
- package/components/_setup/I18N/enUS.js +106 -0
- package/components/_setup/I18N/index.d.ts +3 -0
- package/components/_setup/I18N/index.js +5 -0
- package/components/_setup/I18N/zhCN.d.ts +3 -0
- package/components/_setup/I18N/zhCN.js +109 -0
- package/components/_setup/I18N/zhHK.d.ts +1 -0
- package/components/_setup/I18N/zhHK.js +107 -0
- package/components/_setup/ICON/IconTypes.d.ts +1 -0
- package/components/_setup/ICON/IconTypes.js +10 -0
- package/components/_setup/SearchField/SearchFieldAdvance.d.ts +1 -0
- package/components/_setup/SearchField/SearchFieldAdvance.js +57 -0
- package/components/_setup/SearchField/SearchFieldDate.d.ts +1 -0
- package/components/_setup/SearchField/SearchFieldDate.js +186 -0
- package/components/_setup/SearchField/SearchFieldInput.d.ts +3 -0
- package/components/_setup/SearchField/SearchFieldInput.js +20 -0
- package/components/_setup/SearchField/SearchFieldSelect.d.ts +1 -0
- package/components/_setup/SearchField/SearchFieldSelect.js +106 -0
- package/components/_setup/SearchField/SearchFieldTree.d.ts +1 -0
- package/components/_setup/SearchField/SearchFieldTree.js +191 -0
- package/components/_setup/SelectBar/SelectList.d.ts +1 -0
- package/components/_setup/SelectBar/SelectList.js +21 -0
- package/components/_setup/SelectBar/SelectTree.d.ts +1 -0
- package/components/_setup/SelectBar/SelectTree.js +11 -0
- package/components/_setup/UForm/UFormAdvanceInput.d.ts +1 -0
- package/components/_setup/UForm/UFormAdvanceInput.js +300 -0
- package/components/_setup/UForm/UFormAdvanceSelect.d.ts +0 -0
- package/components/_setup/UForm/UFormAdvanceSelect.js +26 -0
- package/components/_setup/UForm/UFormCrontab.d.ts +1 -0
- package/components/_setup/UForm/UFormCrontab.js +199 -0
- package/components/_setup/UForm/UFormDate.d.ts +1 -0
- package/components/_setup/UForm/UFormDate.js +313 -0
- package/components/_setup/UForm/UFormInput.d.ts +1 -0
- package/components/_setup/UForm/UFormInput.js +159 -0
- package/components/_setup/UForm/UFormJSON.d.ts +1 -0
- package/components/_setup/UForm/UFormJSON.js +219 -0
- package/components/_setup/UForm/UFormOrg.d.ts +1 -0
- package/components/_setup/UForm/UFormOrg.js +121 -0
- package/components/_setup/UForm/UFormRole.d.ts +1 -0
- package/components/_setup/UForm/UFormRole.js +47 -0
- package/components/_setup/UForm/UFormSearch.d.ts +0 -0
- package/components/_setup/UForm/UFormSearch.js +35 -0
- package/components/_setup/UForm/UFormSelect.d.ts +1 -0
- package/components/_setup/UForm/UFormSelect.js +179 -0
- package/components/_setup/UForm/UFormTree.d.ts +0 -0
- package/components/_setup/UForm/UFormTree.js +134 -0
- package/components/_setup/UForm/UFormUpload.d.ts +1 -0
- package/components/_setup/UForm/UFormUpload.js +173 -0
- package/components/_setup/UForm/_utils.d.ts +11 -0
- package/components/_setup/UForm/_utils.js +41 -0
- package/components/_setup/index.d.ts +21 -0
- package/components/_setup/index.js +25 -0
- package/components/index.d.ts +7 -0
- package/components/index.js +16 -0
- package/deps/JsonView.d.ts +6 -0
- package/deps/JsonView.js +57 -0
- package/deps/SpringBoot.d.ts +4 -0
- package/deps/SpringBoot.js +18 -0
- package/deps/SpringCloud.d.ts +14 -0
- package/deps/SpringCloud.js +29 -0
- package/deps/_editor/advance/_Audio.d.ts +0 -0
- package/deps/_editor/advance/_Audio.js +1 -0
- package/deps/_editor/advance/_Image.d.ts +2 -0
- package/deps/_editor/advance/_Image.js +89 -0
- package/deps/_editor/advance/_Table.d.ts +0 -0
- package/deps/_editor/advance/_Table.js +1 -0
- package/deps/_editor/advance/_Video.d.ts +0 -0
- package/deps/_editor/advance/_Video.js +1 -0
- package/deps/_editor/base/Element.d.ts +5 -0
- package/deps/_editor/base/Element.js +43 -0
- package/deps/_editor/base/Leaf.d.ts +3 -0
- package/deps/_editor/base/Leaf.js +36 -0
- package/deps/_editor/base/Support.d.ts +2 -0
- package/deps/_editor/base/Support.js +78 -0
- package/deps/_editor/base/types.d.ts +156 -0
- package/deps/_editor/base/types.js +10 -0
- package/deps/_editor/i18n.d.ts +1 -0
- package/deps/_editor/i18n.js +31 -0
- package/deps/_editor/tools/Button.d.ts +6 -0
- package/deps/_editor/tools/Button.js +86 -0
- package/deps/_editor/tools/ToolBar.d.ts +8 -0
- package/deps/_editor/tools/ToolBar.js +10 -0
- package/deps/_editor/tools/_BlockButton.d.ts +4 -0
- package/deps/_editor/tools/_BlockButton.js +77 -0
- package/deps/_editor/tools/_InsertButton.d.ts +6 -0
- package/deps/_editor/tools/_InsertButton.js +65 -0
- package/deps/_editor/tools/_MarkButton.d.ts +6 -0
- package/deps/_editor/tools/_MarkButton.js +45 -0
- package/deps/_editor/tools/_TxtButton.d.ts +7 -0
- package/deps/_editor/tools/_TxtButton.js +187 -0
- package/deps/_editor/utils/ParseHtml.d.ts +0 -0
- package/deps/_editor/utils/ParseHtml.js +220 -0
- package/deps/api-audit.d.ts +1 -0
- package/deps/api-audit.js +6 -0
- package/deps/api-data.d.ts +0 -0
- package/deps/api-data.js +1 -0
- package/deps/apis/useSource.d.ts +0 -0
- package/deps/apis/useSource.js +152 -0
- package/deps/echarts.d.ts +26 -0
- package/deps/echarts.js +71 -0
- package/deps/editor.d.ts +34 -0
- package/deps/editor.js +111 -0
- package/deps/registerEditor.d.ts +1 -0
- package/deps/registerEditor.js +15 -0
- package/hooks/_list.d.ts +87 -0
- package/hooks/_list.js +13 -0
- package/hooks/index.d.ts +14 -0
- package/hooks/index.js +49 -0
- package/hooks/useAjax.d.ts +14 -0
- package/hooks/useAjax.js +43 -0
- package/hooks/useAjaxAction.d.ts +13 -0
- package/hooks/useAjaxAction.js +42 -0
- package/hooks/useAjaxQuery.d.ts +40 -0
- package/hooks/useAjaxQuery.js +81 -0
- package/hooks/useApi.d.ts +69 -0
- package/hooks/useApi.js +352 -0
- package/hooks/useApiGlobal.d.ts +0 -0
- package/hooks/useApiGlobal.js +5 -0
- package/hooks/useApp.d.ts +243 -0
- package/hooks/useApp.js +17 -0
- package/hooks/useArray.d.ts +21 -0
- package/hooks/useArray.js +182 -0
- package/hooks/useCounter.d.ts +0 -0
- package/hooks/useCounter.js +82 -0
- package/hooks/useDefault.d.ts +6 -0
- package/hooks/useDefault.js +16 -0
- package/hooks/useDoLoad.d.ts +17 -0
- package/hooks/useDoLoad.js +44 -0
- package/hooks/useEffectFunction.d.ts +8 -0
- package/hooks/useEffectFunction.js +16 -0
- package/hooks/useEffectOnce.d.ts +5 -0
- package/hooks/useEffectOnce.js +23 -0
- package/hooks/useError.d.ts +5 -0
- package/hooks/useError.js +21 -0
- package/hooks/useFirstMountState.d.ts +6 -0
- package/hooks/useFirstMountState.js +18 -0
- package/hooks/useGenkey.d.ts +2 -0
- package/hooks/useGenkey.js +16 -0
- package/hooks/useGetSet.d.ts +11 -0
- package/hooks/useGetSet.js +27 -0
- package/hooks/useGlobal.d.ts +19 -0
- package/hooks/useGlobal.js +62 -0
- package/hooks/useGlobal_back.d.ts +1 -0
- package/hooks/useGlobal_back.js +11 -0
- package/hooks/useHover.d.ts +8 -0
- package/hooks/useHover.js +49 -0
- package/hooks/useMemoPromise.d.ts +6 -0
- package/hooks/useMemoPromise.js +42 -0
- package/hooks/useModals.d.ts +40 -0
- package/hooks/useModals.js +98 -0
- package/hooks/useMountedState.d.ts +5 -0
- package/hooks/useMountedState.js +20 -0
- package/hooks/useOpenState.d.ts +28 -0
- package/hooks/useOpenState.js +23 -0
- package/hooks/usePromise.d.ts +7 -0
- package/hooks/usePromise.js +22 -0
- package/hooks/useQueue.d.ts +12 -0
- package/hooks/useQueue.js +34 -0
- package/hooks/useSetState.d.ts +9 -0
- package/hooks/useSetState.js +26 -0
- package/hooks/useStateList.d.ts +13 -0
- package/hooks/useStateList.js +59 -0
- package/hooks/useToggle.d.ts +6 -0
- package/hooks/useToggle.js +12 -0
- package/hooks/useUnmountPromise.d.ts +6 -0
- package/hooks/useUnmountPromise.js +36 -0
- package/hooks/useUpdate.d.ts +7 -0
- package/hooks/useUpdate.js +15 -0
- package/hooks/useUpdateEffect.d.ts +6 -0
- package/hooks/useUpdateEffect.js +18 -0
- package/index.d.ts +139 -0
- package/index.js +161 -0
- package/login/Base65.d.ts +8 -0
- package/login/Base65.js +65 -0
- package/login/Password.d.ts +61 -0
- package/login/Password.js +124 -0
- package/login/SM4.d.ts +20 -0
- package/login/SM4.js +193 -0
- package/login/cems/index.d.ts +10 -0
- package/login/cems/index.js +17 -0
- package/login/jit/index.d.ts +32 -0
- package/login/jit/index.js +180 -0
- package/login/jit/pnxclient.d.ts +54 -0
- package/login/jit/pnxclient.js +575 -0
- package/login/sso/index.d.ts +0 -0
- package/login/sso/index.js +0 -0
- package/login/vap/index.d.ts +1 -0
- package/login/vap/index.js +6 -0
- package/login/xrtx/index.d.ts +2 -0
- package/login/xrtx/index.js +33 -0
- package/package.json +1 -0
- package/screen/Comment.d.ts +31 -0
- package/screen/Comment.js +29 -0
- package/screen/EchartContent.d.ts +0 -0
- package/screen/EchartContent.js +63 -0
- package/screen/Page.d.ts +13 -0
- package/screen/Page.js +74 -0
- package/screen/index.d.ts +3 -0
- package/screen/index.js +9 -0
- package/screen/render.d.ts +5 -0
- package/screen/render.js +10 -0
- package/utils/Ajax.d.ts +85 -0
- package/utils/Ajax.js +147 -0
- package/utils/ArrayUtil.d.ts +22 -0
- package/utils/ArrayUtil.js +51 -0
- package/utils/CacheUtil.d.ts +20 -0
- package/utils/CacheUtil.js +86 -0
- package/utils/Const.d.ts +14 -0
- package/utils/Const.js +37 -0
- package/utils/CustomApp.d.ts +242 -0
- package/utils/CustomApp.js +18 -0
- package/utils/EventUtil.d.ts +22 -0
- package/utils/EventUtil.js +63 -0
- package/utils/Format.d.ts +28 -0
- package/utils/Format.js +206 -0
- package/utils/Global.d.ts +276 -0
- package/utils/Global.js +125 -0
- package/utils/Logger.d.ts +5 -0
- package/utils/Logger.js +32 -0
- package/utils/PageUtil.d.ts +24 -0
- package/utils/PageUtil.js +87 -0
- package/utils/Renders/ApiGetRender.d.ts +23 -0
- package/utils/Renders/ApiGetRender.js +192 -0
- package/utils/Renders/ApiPostRender.d.ts +17 -0
- package/utils/Renders/ApiPostRender.js +161 -0
- package/utils/Renders/DateRender.d.ts +8 -0
- package/utils/Renders/DateRender.js +35 -0
- package/utils/Renders/DictRender.d.ts +23 -0
- package/utils/Renders/DictRender.js +258 -0
- package/utils/Renders/FileRender.d.ts +3 -0
- package/utils/Renders/FileRender.js +46 -0
- package/utils/Renders/ListRender.d.ts +23 -0
- package/utils/Renders/ListRender.js +111 -0
- package/utils/Renders/NumberRender.d.ts +19 -0
- package/utils/Renders/NumberRender.js +65 -0
- package/utils/Renders/StatusRender.d.ts +12 -0
- package/utils/Renders/StatusRender.js +68 -0
- package/utils/Renders/StringRender.d.ts +14 -0
- package/utils/Renders/StringRender.js +194 -0
- package/utils/Renders/_define.d.ts +26 -0
- package/utils/Renders/_define.js +64 -0
- package/utils/Renders/index.d.ts +9 -0
- package/utils/Renders/index.js +42 -0
- package/utils/StringUtil.d.ts +124 -0
- package/utils/StringUtil.js +352 -0
- package/utils/TreeUtil.d.ts +42 -0
- package/utils/TreeUtil.js +69 -0
- package/utils/VAP.d.ts +16 -0
- package/utils/VAP.js +78 -0
- package/utils/XHR.d.ts +9 -0
- package/utils/XHR.js +53 -0
- package/utils/_AjaxUtil.d.ts +11 -0
- package/utils/_AjaxUtil.js +45 -0
- package/utils/_Support.d.ts +22 -0
- package/utils/_Support.js +106 -0
- package/utils/i18n.d.ts +60 -0
- package/utils/i18n.js +184 -0
- package/utils/index.d.ts +19 -0
- package/utils/index.js +54 -0
- package/utils/screenful.d.ts +15 -0
- package/utils/screenful.js +64 -0
- package/widget/index.d.ts +39 -0
- package/widget/index.js +21 -0
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
type PasswordCheckerOptions = {
|
|
2
|
+
/**
|
|
3
|
+
* 最小长度,默认:6
|
|
4
|
+
*/
|
|
5
|
+
minLength?: number;
|
|
6
|
+
/**
|
|
7
|
+
* 最大长度,默认:32
|
|
8
|
+
*/
|
|
9
|
+
maxLength?: number;
|
|
10
|
+
/**
|
|
11
|
+
* 必须包含数字
|
|
12
|
+
*/
|
|
13
|
+
requireNumber?: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* 必须包含大写字母
|
|
16
|
+
*/
|
|
17
|
+
requireLowerLetter?: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* 必须包含大写字母
|
|
20
|
+
*/
|
|
21
|
+
requireUpperLetter?: boolean;
|
|
22
|
+
/**
|
|
23
|
+
* 必须包含小写字母
|
|
24
|
+
*/
|
|
25
|
+
rqueireSymbol?: boolean;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* 密码复杂度,安全等级判断
|
|
29
|
+
*/
|
|
30
|
+
export declare class PasswordChecker {
|
|
31
|
+
options: PasswordCheckerOptions;
|
|
32
|
+
constructor(options: PasswordCheckerOptions);
|
|
33
|
+
check(txt: string): true | string;
|
|
34
|
+
/**
|
|
35
|
+
* 说明
|
|
36
|
+
* 一. 密码长度
|
|
37
|
+
* 1) 5 分: 小于等于 4 个字符
|
|
38
|
+
* 2) 10 分: 5 到 7 字符
|
|
39
|
+
* 3) 25 分: 大于等于 8 个字符
|
|
40
|
+
* 二. 字母
|
|
41
|
+
* 1) 0 分: 没有字母
|
|
42
|
+
* 2) 10 分: 全都是小(大)写字母
|
|
43
|
+
* 1) 2 分: 字母和数字
|
|
44
|
+
* 2) 3 分: 字母、数字和符号
|
|
45
|
+
* 3) 5 分: 大小写字母、数字和符号
|
|
46
|
+
*/
|
|
47
|
+
strong(txt: string): number;
|
|
48
|
+
/**
|
|
49
|
+
* 0: 非常弱
|
|
50
|
+
* 25: 弱(Weak)
|
|
51
|
+
* 50: 一般(Average)
|
|
52
|
+
* 60: 强(Strong)
|
|
53
|
+
* 70: 非常强
|
|
54
|
+
* 80: 安全(Secure)
|
|
55
|
+
* 90: 非常安全
|
|
56
|
+
*
|
|
57
|
+
* 说明,返回 false , 说明密码没有通过验证
|
|
58
|
+
*/
|
|
59
|
+
safeCheck(txt: string): string | false;
|
|
60
|
+
}
|
|
61
|
+
export {};
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PasswordChecker = void 0;
|
|
4
|
+
const CHARS_NUMBER = new Set('0123456789'.split(''));
|
|
5
|
+
const CHARS_LOW = new Set('abcdefghijklmnopqrstuvwxyz'.split(''));
|
|
6
|
+
const CHARS_UP = new Set('ABCDEFGHIJKLMNOPQRSTUVWXYZ'.split(''));
|
|
7
|
+
const CHARS_SYMBOL = new Set('-_+.~!@#$%^&*<>'.split(''));
|
|
8
|
+
/**
|
|
9
|
+
* 密码复杂度,安全等级判断
|
|
10
|
+
*/
|
|
11
|
+
class PasswordChecker {
|
|
12
|
+
constructor(options) {
|
|
13
|
+
this.options = {};
|
|
14
|
+
this.options = options;
|
|
15
|
+
}
|
|
16
|
+
check(txt) {
|
|
17
|
+
const { options } = this;
|
|
18
|
+
if (txt == '' || txt == null) {
|
|
19
|
+
return '密码不能为空';
|
|
20
|
+
}
|
|
21
|
+
if (options.minLength && txt.length < options.minLength) {
|
|
22
|
+
return `至少输入${options.minLength}个字符`;
|
|
23
|
+
}
|
|
24
|
+
if (options.maxLength && txt.length > options.maxLength) {
|
|
25
|
+
return `最多输入${options.maxLength}个字符`;
|
|
26
|
+
}
|
|
27
|
+
let chars = txt.split('');
|
|
28
|
+
if (options.requireLowerLetter) {
|
|
29
|
+
let checked = false;
|
|
30
|
+
for (let char of chars) {
|
|
31
|
+
if (CHARS_LOW.has(char)) {
|
|
32
|
+
checked = true;
|
|
33
|
+
break;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
if (!checked) {
|
|
37
|
+
return '必须要包含小写字母';
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
if (options.requireUpperLetter) {
|
|
41
|
+
let checked = false;
|
|
42
|
+
for (let char of chars) {
|
|
43
|
+
if (CHARS_UP.has(char)) {
|
|
44
|
+
checked = true;
|
|
45
|
+
break;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
if (!checked) {
|
|
49
|
+
return '必须要包含大写字母';
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
if (options.requireNumber) {
|
|
53
|
+
let checked = false;
|
|
54
|
+
for (let char of chars) {
|
|
55
|
+
if (CHARS_NUMBER.has(char)) {
|
|
56
|
+
checked = true;
|
|
57
|
+
break;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
if (!checked) {
|
|
61
|
+
return '必须要包含数字';
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
if (options.rqueireSymbol) {
|
|
65
|
+
let checked = false;
|
|
66
|
+
for (let char of chars) {
|
|
67
|
+
if (CHARS_SYMBOL.has(char)) {
|
|
68
|
+
checked = true;
|
|
69
|
+
break;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
if (!checked) {
|
|
73
|
+
return '必须要包含一个特殊符号';
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return true;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* 说明
|
|
80
|
+
* 一. 密码长度
|
|
81
|
+
* 1) 5 分: 小于等于 4 个字符
|
|
82
|
+
* 2) 10 分: 5 到 7 字符
|
|
83
|
+
* 3) 25 分: 大于等于 8 个字符
|
|
84
|
+
* 二. 字母
|
|
85
|
+
* 1) 0 分: 没有字母
|
|
86
|
+
* 2) 10 分: 全都是小(大)写字母
|
|
87
|
+
* 1) 2 分: 字母和数字
|
|
88
|
+
* 2) 3 分: 字母、数字和符号
|
|
89
|
+
* 3) 5 分: 大小写字母、数字和符号
|
|
90
|
+
*/
|
|
91
|
+
strong(txt) {
|
|
92
|
+
return 1;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* 0: 非常弱
|
|
96
|
+
* 25: 弱(Weak)
|
|
97
|
+
* 50: 一般(Average)
|
|
98
|
+
* 60: 强(Strong)
|
|
99
|
+
* 70: 非常强
|
|
100
|
+
* 80: 安全(Secure)
|
|
101
|
+
* 90: 非常安全
|
|
102
|
+
*
|
|
103
|
+
* 说明,返回 false , 说明密码没有通过验证
|
|
104
|
+
*/
|
|
105
|
+
safeCheck(txt) {
|
|
106
|
+
if (!this.check(txt))
|
|
107
|
+
return false;
|
|
108
|
+
const score = this.strong(txt);
|
|
109
|
+
if (score < 25)
|
|
110
|
+
return '非常弱';
|
|
111
|
+
if (score < 50)
|
|
112
|
+
return '弱';
|
|
113
|
+
if (score < 60)
|
|
114
|
+
return '一般';
|
|
115
|
+
if (score < 70)
|
|
116
|
+
return '强';
|
|
117
|
+
if (score < 80)
|
|
118
|
+
return '非常强';
|
|
119
|
+
if (score < 90)
|
|
120
|
+
return '安全';
|
|
121
|
+
return '非常安全';
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
exports.PasswordChecker = PasswordChecker;
|
package/login/SM4.d.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 国密SM4 加密算法
|
|
3
|
+
* 使用
|
|
4
|
+
* import { SM4 } from 'vap/utils/SM4';
|
|
5
|
+
* const key = 'xxxxxxxxxxxxxxxx';
|
|
6
|
+
* const sm4 = new SM4(key);
|
|
7
|
+
*/
|
|
8
|
+
export declare class SM4 {
|
|
9
|
+
key: string;
|
|
10
|
+
constructor(key: string);
|
|
11
|
+
encrypt(content: any): string;
|
|
12
|
+
arrayBufferToBase64(buffer: any): string;
|
|
13
|
+
sm4_setkey_enc(sk: any, key: any): void;
|
|
14
|
+
sm4_crypt_ecb(sk: any, length: any, input: any, output: any): void;
|
|
15
|
+
parseUtf8StringToHex(input: any): string;
|
|
16
|
+
/**
|
|
17
|
+
* 转成ascii码数组
|
|
18
|
+
*/
|
|
19
|
+
hexToArray(hexStr: any): any[];
|
|
20
|
+
}
|
package/login/SM4.js
ADDED
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SM4 = void 0;
|
|
4
|
+
const FK = [0xa3b1bac6, 0x56aa3350, 0x677d9197, 0xb27022dc];
|
|
5
|
+
const SboxTable = [
|
|
6
|
+
[0xd6, 0x90, 0xe9, 0xfe, 0xcc, 0xe1, 0x3d, 0xb7, 0x16, 0xb6, 0x14, 0xc2, 0x28, 0xfb, 0x2c, 0x05],
|
|
7
|
+
[0x2b, 0x67, 0x9a, 0x76, 0x2a, 0xbe, 0x04, 0xc3, 0xaa, 0x44, 0x13, 0x26, 0x49, 0x86, 0x06, 0x99],
|
|
8
|
+
[0x9c, 0x42, 0x50, 0xf4, 0x91, 0xef, 0x98, 0x7a, 0x33, 0x54, 0x0b, 0x43, 0xed, 0xcf, 0xac, 0x62],
|
|
9
|
+
[0xe4, 0xb3, 0x1c, 0xa9, 0xc9, 0x08, 0xe8, 0x95, 0x80, 0xdf, 0x94, 0xfa, 0x75, 0x8f, 0x3f, 0xa6],
|
|
10
|
+
[0x47, 0x07, 0xa7, 0xfc, 0xf3, 0x73, 0x17, 0xba, 0x83, 0x59, 0x3c, 0x19, 0xe6, 0x85, 0x4f, 0xa8],
|
|
11
|
+
[0x68, 0x6b, 0x81, 0xb2, 0x71, 0x64, 0xda, 0x8b, 0xf8, 0xeb, 0x0f, 0x4b, 0x70, 0x56, 0x9d, 0x35],
|
|
12
|
+
[0x1e, 0x24, 0x0e, 0x5e, 0x63, 0x58, 0xd1, 0xa2, 0x25, 0x22, 0x7c, 0x3b, 0x01, 0x21, 0x78, 0x87],
|
|
13
|
+
[0xd4, 0x00, 0x46, 0x57, 0x9f, 0xd3, 0x27, 0x52, 0x4c, 0x36, 0x02, 0xe7, 0xa0, 0xc4, 0xc8, 0x9e],
|
|
14
|
+
[0xea, 0xbf, 0x8a, 0xd2, 0x40, 0xc7, 0x38, 0xb5, 0xa3, 0xf7, 0xf2, 0xce, 0xf9, 0x61, 0x15, 0xa1],
|
|
15
|
+
[0xe0, 0xae, 0x5d, 0xa4, 0x9b, 0x34, 0x1a, 0x55, 0xad, 0x93, 0x32, 0x30, 0xf5, 0x8c, 0xb1, 0xe3],
|
|
16
|
+
[0x1d, 0xf6, 0xe2, 0x2e, 0x82, 0x66, 0xca, 0x60, 0xc0, 0x29, 0x23, 0xab, 0x0d, 0x53, 0x4e, 0x6f],
|
|
17
|
+
[0xd5, 0xdb, 0x37, 0x45, 0xde, 0xfd, 0x8e, 0x2f, 0x03, 0xff, 0x6a, 0x72, 0x6d, 0x6c, 0x5b, 0x51],
|
|
18
|
+
[0x8d, 0x1b, 0xaf, 0x92, 0xbb, 0xdd, 0xbc, 0x7f, 0x11, 0xd9, 0x5c, 0x41, 0x1f, 0x10, 0x5a, 0xd8],
|
|
19
|
+
[0x0a, 0xc1, 0x31, 0x88, 0xa5, 0xcd, 0x7b, 0xbd, 0x2d, 0x74, 0xd0, 0x12, 0xb8, 0xe5, 0xb4, 0xb0],
|
|
20
|
+
[0x89, 0x69, 0x97, 0x4a, 0x0c, 0x96, 0x77, 0x7e, 0x65, 0xb9, 0xf1, 0x09, 0xc5, 0x6e, 0xc6, 0x84],
|
|
21
|
+
[0x18, 0xf0, 0x7d, 0xec, 0x3a, 0xdc, 0x4d, 0x20, 0x79, 0xee, 0x5f, 0x3e, 0xd7, 0xcb, 0x39, 0x48]
|
|
22
|
+
];
|
|
23
|
+
const CK = [
|
|
24
|
+
0x00070e15, 0x1c232a31, 0x383f464d, 0x545b6269,
|
|
25
|
+
0x70777e85, 0x8c939aa1, 0xa8afb6bd, 0xc4cbd2d9,
|
|
26
|
+
0xe0e7eef5, 0xfc030a11, 0x181f262d, 0x343b4249,
|
|
27
|
+
0x50575e65, 0x6c737a81, 0x888f969d, 0xa4abb2b9,
|
|
28
|
+
0xc0c7ced5, 0xdce3eaf1, 0xf8ff060d, 0x141b2229,
|
|
29
|
+
0x30373e45, 0x4c535a61, 0x686f767d, 0x848b9299,
|
|
30
|
+
0xa0a7aeb5, 0xbcc3cad1, 0xd8dfe6ed, 0xf4fb0209,
|
|
31
|
+
0x10171e25, 0x2c333a41, 0x484f565d, 0x646b7279
|
|
32
|
+
];
|
|
33
|
+
const GET_ULONG_BE = function (n, b, i) {
|
|
34
|
+
return (b[i] << 24) | (b[i + 1] << 16) | (b[i + 2]) << 8 | (b[i + 3]);
|
|
35
|
+
};
|
|
36
|
+
const PUT_ULONG_BE = function (n, b, i) {
|
|
37
|
+
b[i] = n >>> 24;
|
|
38
|
+
b[i + 1] = n >>> 16;
|
|
39
|
+
b[i + 2] = n >>> 8;
|
|
40
|
+
b[i + 3] = n;
|
|
41
|
+
};
|
|
42
|
+
const sm4Sbox = function (n) {
|
|
43
|
+
var l = n >>> 4;
|
|
44
|
+
var r = n % 16;
|
|
45
|
+
return SboxTable[l][r];
|
|
46
|
+
};
|
|
47
|
+
const sm4CalciRK = function (ka) {
|
|
48
|
+
var bb = 0;
|
|
49
|
+
var rk = 0;
|
|
50
|
+
var a = new Uint8Array(4);
|
|
51
|
+
var b = new Array(4);
|
|
52
|
+
PUT_ULONG_BE(ka, a, 0);
|
|
53
|
+
b[0] = sm4Sbox(a[0]);
|
|
54
|
+
b[1] = sm4Sbox(a[1]);
|
|
55
|
+
b[2] = sm4Sbox(a[2]);
|
|
56
|
+
b[3] = sm4Sbox(a[3]);
|
|
57
|
+
bb = GET_ULONG_BE(bb, b, 0);
|
|
58
|
+
rk = bb ^ (ROTL(bb, 13)) ^ (ROTL(bb, 23));
|
|
59
|
+
return rk;
|
|
60
|
+
};
|
|
61
|
+
const ROTL = function (x, n) {
|
|
62
|
+
var a = (x & 0xFFFFFFFF) << n;
|
|
63
|
+
var b = x >>> (32 - n);
|
|
64
|
+
return a | b;
|
|
65
|
+
};
|
|
66
|
+
const sm4_one_round = function (sk, input, output) {
|
|
67
|
+
var i = 0;
|
|
68
|
+
var ulbuf = new Array(36);
|
|
69
|
+
ulbuf[0] = GET_ULONG_BE(ulbuf[0], input, 0);
|
|
70
|
+
ulbuf[1] = GET_ULONG_BE(ulbuf[1], input, 4);
|
|
71
|
+
ulbuf[2] = GET_ULONG_BE(ulbuf[2], input, 8);
|
|
72
|
+
ulbuf[3] = GET_ULONG_BE(ulbuf[3], input, 12);
|
|
73
|
+
while (i < 32) {
|
|
74
|
+
ulbuf[i + 4] = sm4F(ulbuf[i], ulbuf[i + 1], ulbuf[i + 2], ulbuf[i + 3], sk[i]);
|
|
75
|
+
i++;
|
|
76
|
+
}
|
|
77
|
+
PUT_ULONG_BE(ulbuf[35], output, 0);
|
|
78
|
+
PUT_ULONG_BE(ulbuf[34], output, 4);
|
|
79
|
+
PUT_ULONG_BE(ulbuf[33], output, 8);
|
|
80
|
+
PUT_ULONG_BE(ulbuf[32], output, 12);
|
|
81
|
+
};
|
|
82
|
+
const sm4F = function (x0, x1, x2, x3, rk) {
|
|
83
|
+
return (x0 ^ sm4Lt(x1 ^ x2 ^ x3 ^ rk));
|
|
84
|
+
};
|
|
85
|
+
const sm4Lt = function (ka) {
|
|
86
|
+
var bb = 0;
|
|
87
|
+
var c = 0;
|
|
88
|
+
var a = new Uint8Array(4);
|
|
89
|
+
var b = new Array(4);
|
|
90
|
+
PUT_ULONG_BE(ka, a, 0);
|
|
91
|
+
b[0] = sm4Sbox(a[0]);
|
|
92
|
+
b[1] = sm4Sbox(a[1]);
|
|
93
|
+
b[2] = sm4Sbox(a[2]);
|
|
94
|
+
b[3] = sm4Sbox(a[3]);
|
|
95
|
+
bb = GET_ULONG_BE(bb, b, 0);
|
|
96
|
+
c = bb ^ (ROTL(bb, 2)) ^ (ROTL(bb, 10)) ^ (ROTL(bb, 18)) ^ (ROTL(bb, 24));
|
|
97
|
+
return c;
|
|
98
|
+
};
|
|
99
|
+
const sm4_setkey = function (SK, key) {
|
|
100
|
+
var MK = new Array(4);
|
|
101
|
+
var k = new Array(36);
|
|
102
|
+
var i = 0;
|
|
103
|
+
MK[0] = GET_ULONG_BE(MK[0], key, 0);
|
|
104
|
+
MK[1] = GET_ULONG_BE(MK[1], key, 4);
|
|
105
|
+
MK[2] = GET_ULONG_BE(MK[2], key, 8);
|
|
106
|
+
MK[3] = GET_ULONG_BE(MK[3], key, 12);
|
|
107
|
+
k[0] = MK[0] ^ FK[0];
|
|
108
|
+
k[1] = MK[1] ^ FK[1];
|
|
109
|
+
k[2] = MK[2] ^ FK[2];
|
|
110
|
+
k[3] = MK[3] ^ FK[3];
|
|
111
|
+
for (; i < 32; i++) {
|
|
112
|
+
k[i + 4] = k[i] ^ (sm4CalciRK(k[i + 1] ^ k[i + 2] ^ k[i + 3] ^ CK[i]));
|
|
113
|
+
SK[i] = k[i + 4];
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
/**
|
|
117
|
+
* 国密SM4 加密算法
|
|
118
|
+
* 使用
|
|
119
|
+
* import { SM4 } from 'vap/utils/SM4';
|
|
120
|
+
* const key = 'xxxxxxxxxxxxxxxx';
|
|
121
|
+
* const sm4 = new SM4(key);
|
|
122
|
+
*/
|
|
123
|
+
class SM4 {
|
|
124
|
+
constructor(key) {
|
|
125
|
+
this.key = null;
|
|
126
|
+
this.key = key;
|
|
127
|
+
}
|
|
128
|
+
encrypt(content) {
|
|
129
|
+
let hData = this.parseUtf8StringToHex(content);
|
|
130
|
+
let sk = [];
|
|
131
|
+
let lpbKey = this.hexToArray(this.parseUtf8StringToHex(this.key));
|
|
132
|
+
this.sm4_setkey_enc(sk, lpbKey); //加密
|
|
133
|
+
let lpbData = this.hexToArray(hData); // hex2Array(szData)
|
|
134
|
+
let pbyCryptResult = new Array();
|
|
135
|
+
let len = lpbData.length;
|
|
136
|
+
this.sm4_crypt_ecb(sk, len, lpbData, pbyCryptResult);
|
|
137
|
+
return this.arrayBufferToBase64(pbyCryptResult);
|
|
138
|
+
}
|
|
139
|
+
// arrayBuffer 转 Base64
|
|
140
|
+
arrayBufferToBase64(buffer) {
|
|
141
|
+
let binary = '';
|
|
142
|
+
let len = buffer.length;
|
|
143
|
+
for (let i = 0; i < len; i++) {
|
|
144
|
+
binary += String.fromCharCode(buffer[i]);
|
|
145
|
+
}
|
|
146
|
+
return window.btoa(binary);
|
|
147
|
+
}
|
|
148
|
+
sm4_setkey_enc(sk, key) {
|
|
149
|
+
sm4_setkey(sk, key);
|
|
150
|
+
}
|
|
151
|
+
sm4_crypt_ecb(sk, length, input, output) {
|
|
152
|
+
let index = 0;
|
|
153
|
+
while (length > 0) {
|
|
154
|
+
let oneInput = input.slice(index, index + 16);
|
|
155
|
+
let oneOutput = new Uint8Array(16);
|
|
156
|
+
sm4_one_round(sk, oneInput, oneOutput);
|
|
157
|
+
for (let i = 0; i < 16; i++) {
|
|
158
|
+
output[index + i] = oneOutput[i];
|
|
159
|
+
}
|
|
160
|
+
index += 16;
|
|
161
|
+
length -= 16;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
parseUtf8StringToHex(input) {
|
|
165
|
+
input = unescape(encodeURIComponent(input));
|
|
166
|
+
let length = input.length;
|
|
167
|
+
// 转换到字数组
|
|
168
|
+
let words = [];
|
|
169
|
+
for (let i = 0; i < length; i++) {
|
|
170
|
+
words[i >>> 2] |= (input.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);
|
|
171
|
+
}
|
|
172
|
+
// 转换到16进制
|
|
173
|
+
let hexChars = [];
|
|
174
|
+
for (let i = 0; i < length; i++) {
|
|
175
|
+
let bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;
|
|
176
|
+
hexChars.push((bite >>> 4).toString(16));
|
|
177
|
+
hexChars.push((bite & 0x0f).toString(16));
|
|
178
|
+
}
|
|
179
|
+
return hexChars.join('');
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* 转成ascii码数组
|
|
183
|
+
*/
|
|
184
|
+
hexToArray(hexStr) {
|
|
185
|
+
let words = [];
|
|
186
|
+
let hexStrLength = hexStr.length;
|
|
187
|
+
for (let i = 0; i < hexStrLength; i += 2) {
|
|
188
|
+
words.push(parseInt(hexStr.substr(i, 2), 16));
|
|
189
|
+
}
|
|
190
|
+
return words;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
exports.SM4 = SM4;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* CEMS 登录
|
|
4
|
+
*
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.sso = exports.login = void 0;
|
|
8
|
+
const login = () => {
|
|
9
|
+
};
|
|
10
|
+
exports.login = login;
|
|
11
|
+
/**
|
|
12
|
+
* CEMS 登录
|
|
13
|
+
*
|
|
14
|
+
*/
|
|
15
|
+
const sso = (token) => {
|
|
16
|
+
};
|
|
17
|
+
exports.sso = sso;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 吉大正元 PKI 证书登录, 已经内置所有已知的KEY,
|
|
3
|
+
*
|
|
4
|
+
* 大致使用方式 如下
|
|
5
|
+
* import { JitClient } from 'vap2/login/jit'
|
|
6
|
+
* const client = JitClient(); // 接收 1-3个参数,用于不同版本的控制
|
|
7
|
+
* const randomNumber = await Ajax.GET('/api/randomNumber'); // 后端 生成一个随机数
|
|
8
|
+
* const param = client.getLoginParam(randomNumber); // 插件 获取登录参数
|
|
9
|
+
* const loginResult = await Ajax.GET('/api/pkilogin'); // 后端 登录接口
|
|
10
|
+
*
|
|
11
|
+
* 如果 key 未知时,getLoginParam 需要传新的KEY
|
|
12
|
+
*/
|
|
13
|
+
export declare enum BROWSER_MODE {
|
|
14
|
+
IE = 0,
|
|
15
|
+
CHROME = 1,
|
|
16
|
+
CHROME_OLD = 2
|
|
17
|
+
}
|
|
18
|
+
export declare class JitClient {
|
|
19
|
+
private initParam;
|
|
20
|
+
/**
|
|
21
|
+
* @param initParam 插件初始化参数,是一个XML字符串,在不同的项目,参数会不同,可以配置在后端返回
|
|
22
|
+
* @param enablectiveX 是否支持 旧版本 IE ActiveX 登录 , 默认支持
|
|
23
|
+
* @param enableNPPlugin 是否支持 旧版本 Chrome NppPlugin 登录 , 默认支持,部分地区不支持
|
|
24
|
+
*/
|
|
25
|
+
constructor(initParam?: string, enablectiveX?: boolean, enableNPPlugin?: boolean);
|
|
26
|
+
getBrowserInfo(): BROWSER_MODE;
|
|
27
|
+
getLoginParam(randNum: any, initParam?: string): {
|
|
28
|
+
original: string;
|
|
29
|
+
signed_data: string;
|
|
30
|
+
authMode: 'cert';
|
|
31
|
+
} | false;
|
|
32
|
+
}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* 吉大正元 PKI 证书登录, 已经内置所有已知的KEY,
|
|
4
|
+
*
|
|
5
|
+
* 大致使用方式 如下
|
|
6
|
+
* import { JitClient } from 'vap2/login/jit'
|
|
7
|
+
* const client = JitClient(); // 接收 1-3个参数,用于不同版本的控制
|
|
8
|
+
* const randomNumber = await Ajax.GET('/api/randomNumber'); // 后端 生成一个随机数
|
|
9
|
+
* const param = client.getLoginParam(randomNumber); // 插件 获取登录参数
|
|
10
|
+
* const loginResult = await Ajax.GET('/api/pkilogin'); // 后端 登录接口
|
|
11
|
+
*
|
|
12
|
+
* 如果 key 未知时,getLoginParam 需要传新的KEY
|
|
13
|
+
*/
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.JitClient = exports.BROWSER_MODE = void 0;
|
|
16
|
+
var BROWSER_MODE;
|
|
17
|
+
(function (BROWSER_MODE) {
|
|
18
|
+
BROWSER_MODE[BROWSER_MODE["IE"] = 0] = "IE";
|
|
19
|
+
BROWSER_MODE[BROWSER_MODE["CHROME"] = 1] = "CHROME";
|
|
20
|
+
BROWSER_MODE[BROWSER_MODE["CHROME_OLD"] = 2] = "CHROME_OLD";
|
|
21
|
+
})(BROWSER_MODE || (exports.BROWSER_MODE = BROWSER_MODE = {}));
|
|
22
|
+
const pnxclient_1 = require("./pnxclient");
|
|
23
|
+
class JitClient {
|
|
24
|
+
/**
|
|
25
|
+
* @param initParam 插件初始化参数,是一个XML字符串,在不同的项目,参数会不同,可以配置在后端返回
|
|
26
|
+
* @param enablectiveX 是否支持 旧版本 IE ActiveX 登录 , 默认支持
|
|
27
|
+
* @param enableNPPlugin 是否支持 旧版本 Chrome NppPlugin 登录 , 默认支持,部分地区不支持
|
|
28
|
+
*/
|
|
29
|
+
constructor(initParam, enablectiveX = true, enableNPPlugin = true) {
|
|
30
|
+
// 内置所有已知的吉大KEY
|
|
31
|
+
this.initParam = `<\?xml version=\"1.0\" encoding=\"utf-8\"\?>
|
|
32
|
+
<authinfo>
|
|
33
|
+
<liblist>
|
|
34
|
+
<lib type=\"SKF\" version=\"1.1\" dllname=\"U2h1dHRsZUNzcDExXzMwMDBHTS5kbGw=\">
|
|
35
|
+
<algid val=\"SHA1\" sm2_hashalg=\"SM3\" />
|
|
36
|
+
</lib>
|
|
37
|
+
<lib type=\"CSP\" version=\"1.0\" dllname=\"RkVJVElBTiBlUGFzc05HIENTUCBGb3IgSklUM0sgVjEuMA==\">
|
|
38
|
+
<algid val=\"SHA1\" sm2_hashalg=\"SHA1\" />
|
|
39
|
+
</lib>
|
|
40
|
+
<lib type=\"SKF\" version=\"1.0\" dllname=\"RW50ZXJTYWZlIGVQYXNzMzAwMyBDU1AgdjEuMA==\">
|
|
41
|
+
<algid val=\"SHA1\" sm2_hashalg=\"SM3\" />
|
|
42
|
+
</lib>
|
|
43
|
+
<lib type=\"PM\" version=\"1.0\" dllname=\"Q3J5cHRPY3guZGxs\">
|
|
44
|
+
<algid val=\"SHA1\" sm2_hashalg=\"SM3\" />
|
|
45
|
+
</lib>
|
|
46
|
+
<lib type=\"CSP\" version=\"1.0\" dllname=\"RUlUSUFOIGVQYXNzTkcgUlNBIENyeXB0b2dyYXBoaWMgU2VydmljZSBQcm92aWRlcg==\">
|
|
47
|
+
<algid val=\"SHA1\" sm2_hashalg=\"SHA1\" />
|
|
48
|
+
</lib>
|
|
49
|
+
<lib type=\"CSP\" version=\"1.0\" dllname=\"SklUIFVTQiBLZXkgQ1NQIHYxLjA=\">
|
|
50
|
+
<algid val=\"SHA1\" sm2_hashalg=\"SHA1\" />
|
|
51
|
+
</lib>
|
|
52
|
+
<lib type=\"CSP\" version=\"1.0\" dllname=\"RW50ZXJTYWZlIGVQYXNzMjAwMSBDU1AgdjEuMA==\">
|
|
53
|
+
<algid val=\"SHA1\" sm2_hashalg=\"SHA1\" />
|
|
54
|
+
</lib>
|
|
55
|
+
<lib type=\"CSP\" version=\"1.0\" dllname=\"SklUIFVTQiBLZXkzMDAzIENTUCB2MS4w\">
|
|
56
|
+
<algid val=\"SHA1\" sm2_hashalg=\"SHA1\" />
|
|
57
|
+
</lib>
|
|
58
|
+
<lib type=\"CSP\" version=\"1.0\" dllname=\"RkVJVElBTiBlUGFzc05HIFJTQSBDcnlwdG9ncmFwaGljIFNlcnZpY2UgUHJvdmlkZXI=\">
|
|
59
|
+
<algid val=\"SHA1\" sm2_hashalg=\"SHA1\" />
|
|
60
|
+
</lib>
|
|
61
|
+
<lib type=\"SKF\" version=\"1.1\" dllname=\"ZXNhZmlucy5kbGw=\">
|
|
62
|
+
<algid val=\"SHA1\" sm2_hashalg=\"SM3\" />
|
|
63
|
+
</lib>
|
|
64
|
+
<lib type=\"CSP\" version=\"1.0\" dllname=\"TWljcm9zb2Z0IEVuaGFuY2VkIENyeXB0b2dyYXBoaWMgUHJvdmlkZXIgdjEuMA==\">
|
|
65
|
+
<algid val=\"SHA1\" sm2_hashalg=\"SHA1\" />
|
|
66
|
+
</lib>
|
|
67
|
+
<lib type=\"CSP\" version=\"1.0\" dllname=\"TWljcm9zb2Z0IFN0cm9uZyBDcnlwdG9ncmFwaGljIFByb3ZpZGVy\">
|
|
68
|
+
<algid val=\"SHA1\" sm2_hashalg=\"SHA1\" />
|
|
69
|
+
</lib>
|
|
70
|
+
<lib type=\"CSP\" version=\"1.0\" dllname=\"TWljcm9zb2Z0IEJhc2UgQ3J5cHRvZ3JhcGhpYyBQcm92aWRlciB2MS4w\">
|
|
71
|
+
<algid val=\"SHA1\" sm2_hashalg=\"SHA1\" />
|
|
72
|
+
</lib>
|
|
73
|
+
<lib type=\"SKF\" version=\"1.0\" dllname=\"R0FLRVlfU0tGLmRsbA==\">
|
|
74
|
+
<algid val=\"SHA1\" sm2_hashalg=\"SM3\" />
|
|
75
|
+
</lib>
|
|
76
|
+
<lib type=\"SKF\" version=\"1.0\" dllname=\"L3Vzci9sb2NhbC9saWI2NC9saWJTS0ZfR0FfYXBpLnNv\">
|
|
77
|
+
<algid val=\"SHA1\" sm2_hashalg=\"SM3\" />
|
|
78
|
+
</lib>
|
|
79
|
+
<lib type=\"SKF\" version=\"1.0\" dllname=\"b3B0L0dBU1MvbGliU0tGL2xpYlNLRl9HQV9hcGkuc28=\">
|
|
80
|
+
<algid val=\"SHA1\" sm2_hashalg=\"SM3\" />
|
|
81
|
+
</lib>
|
|
82
|
+
<lib type=\"SKF\" version=\"1.0\" dllname=\"SklUR01LRVlfU0pLMTQyNC5kbGw=\">
|
|
83
|
+
<algid val=\"SHA1\" sm2_hashalg=\"SM3\" />
|
|
84
|
+
</lib>
|
|
85
|
+
<lib type=\"CSP\" version=\"1.1\" dllname=\"ZVNhZmUgQ3J5cHRvZ3JhcGhpYyBTZXJ2aWNlIFByb3ZpZGVyIHYxLjA=\">
|
|
86
|
+
<algid val=\"SHA1\" sm2_hashalg=\"SHA1\" />
|
|
87
|
+
</lib>
|
|
88
|
+
</liblist>
|
|
89
|
+
</authinfo>`;
|
|
90
|
+
pnxclient_1.JIT_GW_ExtInterface.Init(enablectiveX, enableNPPlugin);
|
|
91
|
+
if (initParam) {
|
|
92
|
+
this.initParam = initParam;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
getBrowserInfo() {
|
|
96
|
+
const userAgent = navigator.userAgent.toLowerCase();
|
|
97
|
+
if (userAgent.indexOf("chrome") < 0) {
|
|
98
|
+
// 非 Chrome : 使用 IE ActiveX 组件
|
|
99
|
+
// let obj = document.createElement('object');
|
|
100
|
+
// obj.setAttribute('id', 'JITDSignOcx')
|
|
101
|
+
// obj.setAttribute('classid', 'clsid:B0EF56AD-D711-412D-BE74-A751595F3633');
|
|
102
|
+
// document.body.append(obj);
|
|
103
|
+
return BROWSER_MODE.IE;
|
|
104
|
+
}
|
|
105
|
+
let version = 0;
|
|
106
|
+
userAgent.split(" ").map(ptn => {
|
|
107
|
+
if (ptn.indexOf("chrome") > -1) {
|
|
108
|
+
version = parseInt(ptn.split("/")[1]);
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
if (version < 45) {
|
|
112
|
+
// 老旧 Chrome : 使用 x-vctk 组件
|
|
113
|
+
// let embed = document.createElement('embed');
|
|
114
|
+
// embed.setAttribute('width', '0')
|
|
115
|
+
// embed.setAttribute('height', '0')
|
|
116
|
+
// embed.setAttribute('id', 'JITDSignOcx')
|
|
117
|
+
// embed.setAttribute('type', 'application/x-jit-sign-vctk-s-plugin-boc');
|
|
118
|
+
// document.body.append(embed);
|
|
119
|
+
return BROWSER_MODE.CHROME_OLD;
|
|
120
|
+
}
|
|
121
|
+
// 新版 Chrome ,使用 Chrome 插件
|
|
122
|
+
return BROWSER_MODE.CHROME;
|
|
123
|
+
}
|
|
124
|
+
getLoginParam(randNum, initParam) {
|
|
125
|
+
var signSubject = ""; //document.getElementById("rootCADN").value;
|
|
126
|
+
// 验证认证原文是否为空
|
|
127
|
+
// VCTK初始化参数,数据可从网关系统:认证管理->Key类型管理中导出
|
|
128
|
+
// 调用网关工具脚本中的detachSignStr方法进行签名,返回签名结果
|
|
129
|
+
// 参数说明:initParam:vctk控件初始化参数,authContent:认证原文,signSubject:证书版本者主题
|
|
130
|
+
let signResult = detachSignStr(initParam || this.initParam, randNum, signSubject);
|
|
131
|
+
if (signResult === false) {
|
|
132
|
+
return false;
|
|
133
|
+
}
|
|
134
|
+
return { original: randNum, signed_data: signResult, authMode: "cert" };
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
exports.JitClient = JitClient;
|
|
138
|
+
// 根据原文和证书产生认证数据包
|
|
139
|
+
// 参数说明:initParam:vctk控件初始化参数
|
|
140
|
+
// 参数说明:authContent:认证原文
|
|
141
|
+
// 参数说明:signSubject:证书版发者主题
|
|
142
|
+
function detachSignStr(initParam, authContent, signSubject) {
|
|
143
|
+
// 验证认证原文不能为空
|
|
144
|
+
if (authContent == "") {
|
|
145
|
+
alert("认证原文不能为空!");
|
|
146
|
+
return false;
|
|
147
|
+
}
|
|
148
|
+
try {
|
|
149
|
+
pnxclient_1.JIT_GW_ExtInterface.GetVersion();
|
|
150
|
+
}
|
|
151
|
+
catch (e) {
|
|
152
|
+
alert("未安装控件,请进行安装控件");
|
|
153
|
+
return false;
|
|
154
|
+
}
|
|
155
|
+
pnxclient_1.JIT_GW_ExtInterface.ClearFilter();
|
|
156
|
+
// 初始化vctk控件
|
|
157
|
+
pnxclient_1.JIT_GW_ExtInterface.Initialize("", initParam);
|
|
158
|
+
// 控制证书为一个时,不弹出证书选择框
|
|
159
|
+
pnxclient_1.JIT_GW_ExtInterface.SetChooseSingleCert(1);
|
|
160
|
+
// 生成签名信息
|
|
161
|
+
var sign_Result = pnxclient_1.JIT_GW_ExtInterface.P7SignString(authContent, true, true);
|
|
162
|
+
if (pnxclient_1.JIT_GW_ExtInterface.GetLastError() != 0) {
|
|
163
|
+
if (pnxclient_1.JIT_GW_ExtInterface.GetLastError() == 3758096386
|
|
164
|
+
|| pnxclient_1.JIT_GW_ExtInterface.GetLastError() == 2148532334) {
|
|
165
|
+
alert("用户取消操作");
|
|
166
|
+
return false;
|
|
167
|
+
}
|
|
168
|
+
else if (pnxclient_1.JIT_GW_ExtInterface.GetLastError() == -536870815
|
|
169
|
+
|| pnxclient_1.JIT_GW_ExtInterface.GetLastError() == 3758096481) {
|
|
170
|
+
alert("没有找到有效的证书,如果使用的是KEY,请确认已经插入key");
|
|
171
|
+
return false;
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
alert(pnxclient_1.JIT_GW_ExtInterface.GetLastErrorMessage());
|
|
175
|
+
return false;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
// 返回签名结果
|
|
179
|
+
return sign_Result;
|
|
180
|
+
}
|