网站设计的方法青岛网站建设q479185700棒
web/
2025/9/30 14:53:42/
文章来源:
网站设计的方法,青岛网站建设q479185700棒,禹城网站建设电话,ppt模板制作免费在某个项目中#xff0c;需要开发一个与native相对应的web前端app#xff0c;后台用的是java restful接口#xff0c;请求数据时需要用的3des加密。如果想要请求接口#xff0c;则需要javascript的加密与java相同#xff0c;于是在baidu与google进行了大量搜索#xff0c…在某个项目中需要开发一个与native相对应的web前端app后台用的是java restful接口请求数据时需要用的3des加密。如果想要请求接口则需要javascript的加密与java相同于是在baidu与google进行了大量搜索在此记录一下过程并希望能帮助有同样需求的小伙伴。3des加密通俗的理解是应用三次DES加密算法其中有许多参数与标准此处只介绍 java接口中使用的“etdesede/CBC/PKCS5Padding” ,IvParameterSpec自行配置。以下是java源码Key deskey key;String iv 01234567;DESedeKeySpec spec new DESedeKeySpec(secretKey.getBytes());SecretKeyFactory keyfactory SecretKeyFactory.getInstance(desede);deskey keyfactory.generateSecret(spec);Cipher cipher Cipher.getInstance(desede/CBC/PKCS5Padding);IvParameterSpec ips new IvParameterSpec(iv.getBytes());cipher.init(Cipher.ENCRYPT_MODE, deskey, ips);byte[] encryptData cipher.doFinal(plainText.getBytes(encoding));return Base64.encode(encryptData);javascript加密码的方法我采用了开源的CryptoJSgithub地址https://github.com/sytelus/CryptoJS需要引入js文件rollups/tripledes.jscomponents/mode-ecb.jsvar encrypted CryptoJS.DES.encrypt(message, keyHex, {iv:CryptoJS.enc.Utf8.parse(01234567),mode: CryptoJS.mode.CBC,padding: CryptoJS.pad.Pkcs7});以为一切就绪结果console.log发现与java的3des结果不对应。paddingCptoJS.pad.Pkcs7可是java代码明明是pkcs5,但是javascript没有pkcs5,后来搜索发现有人说Pkcs7与Pkcs5没什么区别。可是问题到底在哪呢又经过了一阵子漫长地搜索后来终于在stackoverfllow中找到答案CryptoJS.DES.encrypt只是des加密,而我用的是3des需要用:CryptoJS.TripleDES.encrypt。终于换上TripleDES后问题解决 最终代码如下var keyHex CryptoJS.enc.Utf8.parse(key);var encrypted CryptoJS.TripleDES.encrypt(message, keyHex, {iv:CryptoJS.enc.Utf8.parse(01234567),mode: CryptoJS.mode.CBC,padding: CryptoJS.pad.Pkcs7});console.log(encrypted);
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/84509.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!