node.JS md5加密中文与php结果不一致的解决方法
因项目需要,需要Node.js与PHP做接口调用,发现node.js对中文使用md5加密与php对中文md5加密的结果不同。
PHP
<?php $str = '程序员'; echo $str.' md5:'.md5($str); ?>
输出:
程序员 md5:72d9adf4944f23e5efde37f6364c126f
node.JS
var crypto = require('crypto'); var md5 = function(str){ var crypto_md5 = crypto.createHash('md5'); crypto_md5.update(str); return crypto_md5.digest('hex'); } var str = '程序员'; var result = str + ' md5:' + md5(str); console.log(result);
输出:
程序员 md5:1b6ad7846ec870e78363d1db4fb2a0ff
经查阅资料发现是编码问题,只要在node.JS中加入编码即可解决问题。
解决方法如下:
var crypto = require('crypto'); var md5 = function(str){ var crypto_md5 = crypto.createHash('md5'); crypto_md5.update(str, 'utf8'); // 加入编码 return crypto_md5.digest('hex'); } var str = '程序员'; var result = str + ' md5:' + md5(str); console.log(result);
输出:
程序员 md5:72d9adf4944f23e5efde37f6364c126f
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持我们!
相关推荐
-
JS实现的base64加密、md5加密及sha1加密详解
本文实例讲述了JS实现的base64加密.md5加密及sha1加密.分享给大家供大家参考,具体如下: 1.base64加密 在页面中引入base64.js文件,调用方法为: <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>base64加密</title> <script type="text/javascript" s
-
jQuery MD5加密实现代码
$(md("你想要加密的字符串")); md5插件下载地址:http://xiazai.jb51.net/201003/yuanma/jquery_md5.rar 下面是我的简单例子 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
-
Java实现MD5加密及解密的代码实例分享
基础:MessageDigest类的使用 其实要在Java中完成MD5加密,MessageDigest类大部分都帮你实现好了,几行代码足矣: /** * 对字符串md5加密 * * @param str * @return */ import java.security.MessageDigest; public static String getMD5(String str) { try { // 生成一个MD5加密计算摘要 MessageDigest md = MessageDigest.g
-
Python的加密模块md5、sha、crypt使用实例
MD5(Message-Digest Algorithm 5) 模块用于计算信息密文(信息摘要),得出一个128位的密文.sha模块跟md5相似,但生成的是160位的签名.使用方法是相同的. 如下实例是使用md5的: 复制代码 代码如下: # /usr/bin/python # -*- coding:utf-8 -*- import base64 try: import hashlib hash = hashlib.md5() except ImportError: #
-
Java生成MD5加密字符串代码实例
(1)一般使用的数据库中都会保存用户名和密码,其中密码不使用明码保存. 有时候用MD5密码,很多语言都提供了将字符串生成为MD5密码的方法或函数.MD5的加密算法是公开的. 有时候也可以用自己的字符串加密算法,这种加密算法是只有自己知道的. (2)破解MD5的过程就是先算好大量或者所有可能的字符串的MD5数值,之后进行查询就可以破解.虽然有些网站规定了密码的位数在6~20位之间,但是要事先计算这么多是字符串并有效的组织存储.查询还是相当麻烦,相当慢的. 因为MD5的位数是固定的,
-
彻底解决ASP.NET MD5加密中文结果和ASP不一致的问题
当要进行MD5加密的字符串不含中文时,那么ASP.NET的加密结果和ASP是一致的: 复制代码 代码如下: Response.Write(FormsAuthentication.HashPasswordForStoringInConfigFile("www.mzwu.com", "MD5")); //结果:D66E1F138689B9B5AA4C520D9EAFFB61 复制代码 代码如下: Response.Write(MD5("www.mzwu.com
-
java实现MD5加密算法的实例代码
复制代码 代码如下: package other; import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;/* * MD5 算法*/public class MD5 { // 全局数组 private final static String[] strDigits = { "0", "1", "2", "3", &
-
Python使用MD5加密字符串示例
Python加密模块有好几个,但无论是哪种加密方式都需要先导入相应的加密模块然后再使用模块对字符串加密. 先导入md5加密所需模块: 复制代码 代码如下: import hashlib 创建md5对象 复制代码 代码如下: m = hashlib.md5() 生成加密串,其中 password 是要加密的字符串 复制代码 代码如下: m.update('password') 获取加密串 复制代码 代码如下: psw = m.hexdigest() 输出 复制代码 代码如下: print psw
-
java实现md5加密示例
复制代码 代码如下: /** * 实现MD5加密 * */ public class MD5 { /** * 获取加密后的字符串 * @param input * @return */ public static String stringMD5(String pw) { try { // 拿到一个MD5转换器(如果想要SHA1参数换成"SHA1") MessageDigest messageDigest
-
php 的加密函数 md5,crypt,base64_encode 等使用介绍
不可逆的加密函数为:md5().crypt() md5() 用来计算 MD5 哈稀.语法为:string md5(string str); crypt() 将字符串用 UNIX 的标准加密 DES 模块加密.这是单向的加密函数,无法解密.欲比对字符串,将已加密的字符串的头二个字符放在 salt 的参数中,再比对加密后的字符串.语法为:string crypt(string str, string [salt]); 可逆转的加密为:base64_encode().urlencode() 相对应的解
随机推荐
- 详解AngularJS跨页面传值(ui-router)
- SQLSERVER 2005的ROW_NUMBER、RANK、DENSE_RANK的用法
- Java私有构造器使用方法示例
- Python使用dis模块把Python反编译为字节码的用法详解
- node+koa实现数据mock接口的方法
- zend framework多模块多布局配置
- 详解JavaScript正则表达式之分组匹配及反向引用
- Python MySQLdb Linux下安装笔记
- 基于javascript实现简单的抽奖系统
- JS中的substring和substr函数的区别说明
- 详解Python中for循环的使用
- jquery带有索引按钮且自动轮播切换特效代码分享
- jQuery实现可用于博客的动态滑动菜单
- IE与注册表被锁定的解决办法
- c++中堆栈及创建对象示例代码
- Java编程IP地址和数字相互转换代码示例
- 微信小程序渲染性能调优小结
- python实现截取屏幕保存文件,删除N天前截图的例子
- 详解Docker无法正常启动的原因及解决办法
- 微信小程序使用二次贝塞尔曲线画波浪