JS MD5 返回二进制格式
今天靠大佬的帮助,成功的解决了一个弄了好久的问题。起因就是我们要对一个手机号进行加密。
加密方式是把一个字符串进行MD5加密之后,得到原始 16 字符二进制格式。然后把得到的这个字符作为AES的key对手机号加密,最后得到这结果。
最奇怪的就是得到二进制格式,我以前做过md5加密,得到的都是字符串,不管是32位的,还是16位,但是这次居然要二进制。最开始去百度,发现网上没有,最后还是问的我们大佬,需要引入一个crypto-js.min.js的文件,然后这里面能得到二进制格式的字符。下面我把这个文件放在网盘上,(链接:https://pan.baidu.com/s/1XQACI7FlAap2oclg8TLlnw 提取码:hejh )还有就是我们的代码放在下面,为了私密。我把一些代码注释了
var jsonStr = "123456";
var key = CryptoJS.MD5(jsonStr);
var dataStr = mobile;
var encryptedData = CryptoJS.AES.encrypt(dataStr, key, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
var word = encryptedData.ciphertext;
var encryptedBase64Str = CryptoJS.enc.Base64.stringify(word);
其中jsonStr为需要加密的字符串,第二行得到的key就是二进制字符,大家可以自行的打印查看,然后从第四行开始,是进行AES加密。最后进行一个base64加密,然后这个encryptedBase64Str为最后加密的得到的东西。
同样的后台得到我传过去的这个东西,也是需要对jsonStr进行md5 二进制加密,得到AES解密的密钥,然后进行AES解密。得到原始的数据值,应该就是123456就对了。
这里忍不住吐槽一下,人家php能直接获取到这个二进制字符
<?php
$str = "Shanghai";
echo "字符串:".$str."<br>";
echo "TRUE - 原始 16 字符二进制格式:".md5($str, TRUE)."<br>";
echo "FALSE - 32 字符十六进制格式:".md5($str)."<br>";
?>
羡慕。
JS MD5 返回二进制格式的更多相关文章
- c# 处理js序列化时 datetime返回UTC格式的问题
using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using Syst ...
- js 时间戳转为日期格式
原文:js 时间戳转为日期格式 js 时间戳转为日期格式 什么是Unix时间戳(Unix timestamp): Unix时间戳(Unix timestamp),或称Unix时间(Unix time) ...
- ajax访问服务器返回json格式
使用ajax访问服务器返回多条数据,比如返回一个表中的所有数据,页面该如何处理呢?如何获取数据呢?一直不会用ajax返回json格式,今天研究了下,分享给大家~ 首先需要引用服务,点击项目右键,添加引 ...
- jquery ajax调用返回json格式数据处理
Ajax请求默认的都是异步的 如果想同步 async设置为false就可以(默认是true) var html = $.ajax({ url: "some.php", async: ...
- SpringMVC通过实体类返回json格式的字符串,并在前端显示
一.除了搭建springmvc框架需要的jar包外,还需要这两个jar包 jackson-core-asl-1.9.2.jar和jackson-mapper-asl-1.9.2.jar 二.web,. ...
- 使用 JSON.parse 反序列化 ISO 格式的日期字符串, 将返回Date格式对象
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- js转换Date日期格式
有时候做项目会用到js的date日期格式,因为Date()返回的格式不是我们需要的, Date()返回格式: Thu Mar 19 2015 12:00:00 GMT+0800 (中国标准时间) 而我 ...
- js处理数据库时间格式/Date(1332919782070)/
js处理数据库时间格式 数据库返回时间格式:/Date(1332919782070)/ 方法: function ChangeDateFormat(val) { if (val != null) { ...
- js常用返回网页顶部几种方法
一.使用锚标记 此方法最简单,只需在body下放个隐藏的锚点标记,内容如下: 代码如下 复制代码 <a name="top" id="top">& ...
随机推荐
- 设备数据通过Azure Functions 推送到 Power BI 数据大屏进行展示(2.Azure Functions实战)
本案例适用于开发者入门理解Azure Functions/ IoT Hub / Service Bus / Power BI等几款产品. 主要实战的内容为: 将设备遥测数据上传到物联网中心, 将遥测数 ...
- Java 匿名类和lambda表达式
一.匿名内部类 一个匿名内部类是一个没有名字的内部类.它将进一步定义一个内部类以及创建一个内部类的实例. 内部类处理器可以使用匿名内部类进行代码简化. 匿名内部类的语法如下所示: new SuperC ...
- Python学习之while
count = 0while count <= 5: print('人生苦短,我用Python!', 'count = ', count) count += 1
- 「SAP技术」为正常库存管理的物料做成本中心采购会是什么结果?
SAP 为正常库存管理的物料做成本中心采购会是什么结果? 这种采购可以正常进行,收货后SAP会更新采购订单里指定的费用类科目,而库存数量和库存价值都不会增加. 1, 如下物料号,是正常做库存管理的物料 ...
- dataguard ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
错误的意思是listener 不知道连接解析器中的请求服务,这里要说静态监听和动态监听了动态注册是在instance启动的时候PMON进程根据init.ora中的instance_name,servi ...
- Java 程序员最喜欢使用的日常工具
多年来,Java 始终是企业应用程序的支柱.最近几年,Java 也是 Android 开发的首选编程语言.不过开发人员如何使用这种语言呢?一项新的研究阐明了主要使用 Java 的开发人员的工作类型,以 ...
- 破解另一家网站的反爬机制 & HMAC 算法
零.写在前面 本文涉及的反爬技术,仅供个人技术学习,禁止并做到: 干扰被访问网站的正常运行 抓取受到法律保护的特定类型的数据或信息 搜集到的数据禁止传播.交给第三方使用.或者牟利 如有可能,在爬到数据 ...
- Linux创建Jenkins启动脚本以及开机启动服务
1.jenkins.sh #!/bin/bash ###主要目的用于开机启动服务,不然 启动jenkins.war包没有java -jar的权限 JAVA_HOME=/usr/lib/jdk1.8.0 ...
- 1.1 菜单管理 ——MyRapid WinForm快速开发框架-功能介绍
菜单表数据库设计 可以根据数据表取得树状目录,其中 版本和作者 可以分别对版本和修改人进行追溯 有兴趣的朋友可以尝试再添加一个收藏夹 也是比较常用的功能 这里我没有做这个功能 然后看下菜单编辑 ...
- RabbitMQ Win10安装
RabbitMQ是消息对列,主要是用于做消息代理.本质上说,它接受来自生产者的信息,并将它们传递给消费者.在两者之间, 它可以根据你给它的路由,缓冲规则有选择地进行传递消息.采用Erlang语言开 ...