当前位置: 首页 > news >正文

哪家做网站公司最好网站 服务器 虚拟主机

哪家做网站公司最好,网站 服务器 虚拟主机,七星网络网站,凡客诚品官网网址deriveKey 方法的完整示例,演示如何使用 HMAC 作为密钥派生函数(KDF)来从一个给定的秘密(如密码)派生出一个新的 AES 加密密钥。 //创建一个函数来生成随机盐function getRandomSalt(length){let arraynew Uint8Array…

deriveKey 方法的完整示例,演示如何使用 HMAC 作为密钥派生函数(KDF)来从一个给定的秘密(如密码)派生出一个新的 AES 加密密钥。

//创建一个函数来生成随机盐function getRandomSalt(length){let array=new Uint8Array(length);window.crypto.getRandomValues(array);return array;}//生成随机数字function randomFloat(){const fooArray=new Uint32Array(1);const maxUint32=0xFFFFFFFF;return crypto.getRandomValues(fooArray)[0];}//生成随机密码,导入密钥当中function getKeyMaterial(){//const password=window.prompt("请输入你的密码");//就是为加密时用密码//这里不用输入密码,我们采用随机生成的数字,这样可以增加破解难度,提升安全性const password=randomFloat();const enc=new TextEncoder();return window.crypto.subtle.importKey("raw",enc.encode(password),"PBKDF2",false,["deriveBits","deriveKey"]);}
//创建一个函数来派生密钥async function deriveAeskey(salt,info,keyLength){//生成已有密钥//不能直接用new Textcoder().encoder(password)这样来生成密码,必须用这个函数的importKey导入密钥才行const passwordBuffer=await getKeyMaterial();const derivedKey=await crypto.subtle.deriveKey({name:'PBKDF2',salt:salt,iterations:10000,hash:'SHA-256'},passwordBuffer,{name:'AES-GCM',length:keyLength},true,["encrypt","decrypt"]);return derivedKey;}//使用派生的密钥进行加密async function encryptData(derivedKey,dataToEncrypt){const encoder=new TextEncoder();const dataBuffer=encoder.encode(dataToEncrypt);const iv=window.crypto.getRandomValues(new Uint8Array(12));const encryption=await crypto.subtle.encrypt({name:'AES-GCM',iv:iv},derivedKey,dataBuffer);return {ciphertext:encryption,iv:Array.from(iv)}}//使用派生的密钥进行解密async function decryptData(derivedKey,ciphertext,iv){const decrypted=await crypto.subtle.decrypt({name:'AES-GCM',iv:new Uint8Array(iv)},derivedKey,ciphertext);const decoder=new TextDecoder();return decoder.decode(decrypted);}//最后把他们综合到一起,进行加密和解密,以及做加密后内容的演式(async function(){const salt=getRandomSalt(16);const info=new Uint8Array();const keyLength=256;try{//派生的密钥const derivedKey=await deriveAeskey(salt,info,keyLength);//需要加密的数据const dataToEncrypt="this is data";const {ciphertext,iv}=await encryptData(derivedKey,dataToEncrypt);//这里是演式你加密后的数据样式console.log(String.fromCharCode(...new Uint8Array(ciphertext)));//解密数据const decryptedData=await decryptData(derivedKey,ciphertext,iv);console.log('解密数据:',decryptedData);}catch(error){console.log('加解密时发生错误',error);}})();
http://www.yayakq.cn/news/22791/

相关文章:

  • 重庆制作网站的公司排名网站源码下载网
  • 仓库网站开发建设一个旅游平台网站需要多少资金
  • 跨境网站建站wordpress怎样打开速度快
  • 手机网站 ui移动ui界面设计课程总结
  • 云数据库可以做网站吗网络营销与直播电商专业就业前景
  • 琼海做网站北京网站制作网站
  • 网站建设网站制作哪家好广州海珠区租房子一般多少钱
  • 网站建设的系统分析官网网页制作
  • 怎么自己建立公司网站北京市市场监督管理局官网
  • 网站死链接扫描精选网页设计
  • 摄影师网站做原型的网站
  • 有哪个网站做策划方案的做教育网站有什么好处
  • 沈阳网页建站模板四年级的简短新闻播报
  • 途牛旅游网站建设背景简单网站制作成品
  • 自己做的网页怎么连接到网站福州做网站设计公司
  • wordpress网站管理员插件合肥网站建设公司哪家好
  • 让建站公司做网站需要什么seo技术中心
  • 购物网站的前台功能国内4大现货交易所
  • 建德网站制作公司厦门seo传播
  • 网站不备案有什么后果网站建设方案机构
  • 上海网站建设排名公司哪家好曙光建设有限公司网站
  • ps怎样做网站大图公司网站怎么免费建
  • 网站内部链接的策略多语言网站开发公司
  • seo网站建设及扩词淘宝网页设计招聘
  • 网站功能设计怎么写大连做网站哪家便宜
  • 玩客云做网站咸阳市建设工程信息网
  • 山东德州网站建设哪家最好wordpress 每页文章数量
  • 做网站空间哪家好seo学徒
  • 小米wifi设置网址入口网站淄博网站建设多少钱
  • php网站开发心得3500字如何出售自己的域名