关于crypto的兼容IE写法

Crypto.getRandomValues()方法用于获取适用于密码学的强随机数,它填充一个数组以生成加密级别的随机值。虽然这个方法在现代浏览器中广泛支持,但在IE浏览器中不兼容。为了解决这个问题,可以检查window.crypto或window.msCrypto对象来实现兼容性。这段代码展示了如何在不支持此API的IE浏览器中使用getRandomValues。
该文章已生成可运行项目,

关于crypto:https://developer.mozilla.org/zh-CN/docs/Web/API/Crypto/getRandomValues

Crypto.getRandomValues() 方法让你可以获取符合密码学要求的安全的随机值。传入参数的数组被随机值填充(在加密意义上的随机)。

为了确保足够的性能,不使用真正的随机数生成器,但是它们正在使用具有足够熵值伪随机数生成器。它所使用的 PRNG 的实现与其他不同,但适用于加密的用途。该实现还需要使用具有足够熵的种子,如系统级熵源。

这种写法在IE浏览器上是不兼容的

window.crypto.getRandomValues()

IE浏览器兼容写法:

let crypto = window.crypto || window.msCrypto;
if (crypto) {
   return crypto.getRandomValues(array);
 }
本文章已经生成可运行项目
一.依赖库兼容性分析 1.路由系统:vue-router 0.7.13 → vue-router 4.0.0 (完全不兼容 Vue 3,API 重大变化) 2.HTTP 客户端:vue-resource 0.9.3 → axios 1.0.0 (官方已废弃,不再维护,可使用axios 或 fetch API) 3.构建工具:webpack 1.12.2 → vite 4.0.0 (Webpack 1 过于古老,性能差) 4.加载器插件:vue-loader: ^8.3.0 → vue-loader: ^16.0.0 (不支持 Vue 3 单文件组件) 5.拖拽库:awe-dnd 0.3.4 → vuedraggable (awe-dnd支持Vue1和Vue2,可能不支持 Vue 3的组合式API,) 6. UI 相关库: liquor-tree 0.2.70 → vue3-tree或primevue的tree组件 (liquor-tree基于Vue2的API设计,不能直接应用于vue3的组合式API,需寻找替换,或手动适配组件和逻辑为组合式API模式并更新依赖库如 vuex和vue-router) vue-infinite-scroll 0.2.3 → 自定义实现或寻找 Vue 3 版本 (vue-infinite-scroll基于Vue2,未原生支持Vue3的组合式API和新的响应系统如setup()和ref的响应机制) 7. Polyfill babel-polyfill 6.26.0 → core-js 3.0.0 + regenerator-runtime (babel-polyfill 6.26.0 与 Vue 3 和 Vite 的默认构建机制不兼容,主要由于其基于 core-js 2 而非 3。在 Vite 中推荐使用 @vitejs/plugin-legacy 插件实现对旧浏览器的支持,并自动管理 polyfill。手动引入 babel-polyfill 可能导致重复依赖或运行时问题,建议避免使用。) es6-promise 4.2.8 → 现代浏览器通常不需要 可以保留的依赖 9. 工具类库 crypto-js: ^4.2.0(可保留) cos-js-sdk-v5: ^1.1.9(可保留) lrz: ^4.9.37(图片压缩,可保留)帮我在这个基础上补充
08-28
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值