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

开源的网站后台程序岳阳公司网站建设

开源的网站后台程序,岳阳公司网站建设,亚马逊热销产品类目,网络公司起名大全免费项目场景#xff1a; 今天蛮沮丧的#xff0c;在和别人对接的时候aes加解密的时候踩了坑。今天有个同事请假了#xff0c;所以本来他和别人对接的活#xff0c;老大给了我#xff0c;然后我就正式踏上了战战兢兢的对接之路。 1.一开始的时候对面先是问用的啥加密方法。这…项目场景 今天蛮沮丧的在和别人对接的时候aes加解密的时候踩了坑。今天有个同事请假了所以本来他和别人对接的活老大给了我然后我就正式踏上了战战兢兢的对接之路。 1.一开始的时候对面先是问用的啥加密方法。这个我记得当时做的时候我就在旁边还问我了的AES。顺利答出。 2.然后对面又问要key和偏移量key我知道偏移量是什么鬼然后去百度了一下一个叫IV的东西对加密有点了解脑子里大概知道是做啥用的了去找了一下还真有keyiv都发过去了。还算顺利 问题描述 到这里应该都结束了。哪曾想对面拿到这两个东西解密还是解不了解密返回的是空。 原因分析 然后我就开始找原因 ①我先是试了一下我本地加密解密ok没有问题 ②我又试了一下在密文前面加空格然后解密返回的是空那是不是就是这个原因呢发给对面让对面把空格去了试试好还是不行 ③然后就是半个多小时过去对面看我久久不回把解密的方法发给了我我看了一下和我这边差别不大唯一有差别的就是 对面的key是我发的字符串 而我这边的key是生成的 有没有可能是两个不一样呢我把两个都输出比较了一下都一样的没问题看起来都是字符串。这是我踩的第一个坑。 然后呢不信自己的眼睛又用了一下key key1 输出了一下true也没问题呀。这是我踩的第二个坑。被两个坑给埋了。 最后问同事同事试了一下也愣住了然后我给他展示了一下我用key key1是true ,他让我试试 key key1一输出false好这个时候原因很明显了我又用typeof key输出了是object好家伙。 至于key key1为什么是true我想大概是对象的toString方法让他输出了和key1相等的字符串 解决方案 最后最后我把对面晾了两个多小时对面让我把生成密钥的盐值密码短语KEY_SIZEITERATION_COUNT都发给他自己生成密钥去了。 虽然问题解决了但是还是要探讨一下有密钥了这个key到底应该怎么写。我的chat今天下午竟然罢工了不然问一下应该很快就能解决顺便吐槽一下国内的大模型真lj根本比不了目前还用不了先记录一下等能用了我再问问。 回来填坑 直接这么写不行 然后这样写 var key2 CryptoJS.enc.Utf8.parse(asdfasdfsadfsadfasdf); 输出了一下 用这个key2解密还是不行一样返回为空 突发奇想又把正确的key输出了一下 哦很明显问题出来了比正确的key长问问chat老师 User 还是key不对var key CryptoJS.enc.Utf8.parse(“222d95e87666d9eed4429e0a2daa39a8”); 生成的keyarray是8正确应该是5? 在你提到的情况下密钥的生成可能存在问题。AES 的密钥长度应该是 128 位16 字节192 位24 字节或 256 位32 字节。你提到生成的密钥数组长度为 8这不符合标准的 AES 密钥长度。 如果你的密钥是 32 位的十六进制字符串你可以使用 CryptoJS.enc.Hex.parse 来解析为字节数组。确保使用正确的密钥长度可以根据需要截断或补齐。例如 javascript Copy code // 如果密钥是 32 字节的十六进制字符串 var keyHex “222d95e87666d9eed4429e0a2daa39a8”; var key CryptoJS.enc.Hex.parse(keyHex); 上述代码将 32 字节的十六进制字符串解析为字节数组然后你可以将其用作密钥。 确保你的密钥长度正确并尽量不要硬编码密钥因为密钥的保密性非常重要。最好的做法是将密钥存储在安全的地方而不是在代码中硬编码。如果你需要使用密码来派生密钥可以考虑使用密码学上的密钥派生函数如 PBKDF2。 User 和CryptoJS.enc.Utf8.parse(“222d95e87666d9eed4429e0a2daa39a8”);有什么区别 在 CryptoJS 中CryptoJS.enc.Utf8.parse 和 CryptoJS.enc.Hex.parse 是两个不同的方法用于解析字符串并生成对应的字节数组。 CryptoJS.enc.Utf8.parse 该方法将 UTF-8 编码的字符串转换为字节数组。 适用于包含文本字符的字符串。 例如CryptoJS.enc.Utf8.parse(“Hello, World!”) 会生成一个包含每个字符的 UTF-8 编码的字节数组。 CryptoJS.enc.Hex.parse 该方法将十六进制字符串转换为字节数组。 适用于包含十六进制字符的字符串每两个字符表示一个字节。 例如CryptoJS.enc.Hex.parse(“48656c6c6f2c20576f726c6421”) 会生成一个字节数组对应于 ASCII 编码的 “Hello, World!”。 在你的情况下你提到密钥是一个 32 位的十六进制字符串 javascript Copy code var key CryptoJS.enc.Hex.parse(“222d95e87666d9eed4429e0a2daa39a8”); 这里使用了 CryptoJS.enc.Hex.parse因为你提供的密钥是一个十六进制字符串。这样可以确保正确地将这个字符串转换为字节数组以便在 CryptoJS 的 AES 加密和解密过程中使用。 如果密钥是一个普通的文本字符串而不是十六进制你应该使用 CryptoJS.enc.Utf8.parse。 总的来说选择使用哪个方法取决于你的密钥的表示形式。如果密钥是十六进制字符串使用 CryptoJS.enc.Hex.parse如果是普通文本字符串使用 CryptoJS.enc.Utf8.parse。在加密和解密的过程中确保使用相同的格式来处理密钥。 总结一下喽如果想要把key直接写出来得把密钥写成十六进制的字符串 var key CryptoJS.enc.Hex.parse(asdfasdfsadfsadfasdf);
http://www.dnsts.com.cn/news/220673.html

相关文章:

  • 天津网站优化公司哪家专业湛江seo咨询
  • 设计类专业需要艺考吗青岛seo整站优化公司
  • wordpress 主题 机制百中搜优化
  • 准备网站的工作h5网页制作视频教程
  • 福建建设厅网站中国好设计
  • 长沙 外贸网站建设公司价格夸克看网站要钱吗
  • 榆林建设局网站有哪些网站手游做的好的
  • 浏览不良网站会被网警抓吗wordpress 首页地址
  • 公司网站哪个建的好泰安焦点网络
  • 做外贸是用什么网站做做神马网站优化排
  • 做淘客推广用什么网站好工商银行网页版官网
  • 山西网站建设推广wordpress 读写分离
  • 企业网站设计软件wordpress主题代码编辑教程
  • 可以做试卷网站数学试卷小学六律师事务所 网站模板
  • 有了域名如何建设网站西宁网站建设服务公司
  • 建设部网站施工合同范本如何仿做别人的网站
  • 建设资格执业注册中心网站上海2023年建管平台放假时间
  • 济南网站建设李尚荣看房地产的app在哪看
  • 专业的建设网站服务怎么在虚拟主机安装wordpress
  • 网站开发步奏长春自助建站系统
  • 网站怎么不要钱自己做打字赚钱平台 学生一单一结
  • 网站流量怎样挣钱响应网站模板下载
  • 站长工具收录手机端h5网站模板下载
  • 企查查企业信息查询网站大数据营销心得体会
  • 网站运营工作内容个人网站建设月租抵30元
  • 长沙做电商网站设计网络广告的发布渠道有哪些
  • 网站内外链怎么做档案网站的建设方案
  • 制作微网站的平台个人app开发平台免费
  • wordpress音频播放器同时做几个网站的seo
  • 怎么注册微网站如何在百度上做网站