md5加密,同样的代码得到不同的加密结果(已解决)
场景:
开发环境(windows下)调用第三方接口验签通过,发测试环境(linux下)后死活验签通过不了
原因:
md5是一项成熟的加密技术,问题应该在代码里,查了查感觉可能是字符编码的问题,导致加签没通过,这样的话只能是环境导致的字符编码出现问题,就我所知的有getBytes()方法是得到一个操作系统默认的编码格式的字节数组,发现公共代码里进行md5加密是要进行转字节的
/**
* md5加密
*/
public static String MD5Encode(String origin) {
String resultString = null;
try {
resultString = new String(origin);
MessageDigest md = MessageDigest.getInstance("MD5");
resultString = byteArrayToHexString(md.digest(resultString
.getBytes()));
} catch (NoSuchAlgorithmException e) {
}
return resultString;
}
所以这里的getBytes()不确定性太大,需要指定编码方式来降低耦合(代码与环境的耦合)。
解决方法:
将getBytes()方法指定具体的编码方式,如:getBytes("UTF-8")
/**
* md5加密
*/
public static String MD5Encode(String origin) {
String resultString = null;
try {
resultString = new String(origin);
MessageDigest md = MessageDigest.getInstance("MD5");
resultString = byteArrayToHexString(md.digest(resultString
.getBytes("UTF-8")));
} catch (NoSuchAlgorithmException e) {
}
return resultString;
}
md5加密,同样的代码得到不同的加密结果(已解决)的更多相关文章
- 在本地开启了代理,postman可以正常发起外部请求,但Java代码却请求失败,已解决
在本地开启了代理,postman可以正常发起外部请求,但Java代码却请求失败,已解决 现象:开了vpn访问公司服务器,postman可以正常发起服务器请求,但是java代码请求失败,连接超时.包括在 ...
- Java生成MD5加密字符串代码实例
这篇文章主要介绍了Java生成MD5加密字符串代码实例,本文对MD5的作用作了一些介绍,然后给出了Java下生成MD5加密字符串的代码示例,需要的朋友可以参考下 (1)一般使用的数据库中都会保存用 ...
- [DEncrypt] Encrypt--加密/解密/MD5加密 (转载)
点击下载 Encrypt.zip 这个类是关于加密,解密的操作,文件的一些高级操作1.Encrypt加密2.Encrypt解密3.Encrypt MD5加密看下面代码吧 /// <summar ...
- android环境下两种md5加密方式
在平时开发过程中,MD5加密是一个比较常用的算法,最常见的使用场景就是在帐号注册时,用户输入的密码经md5加密后,传输至服务器保存起来.虽然md5加密经常用,但是md5的加密原理我还真说不上来,对md ...
- Java实现MD5加密_字符串加密_文件加密
Java实现MD5加密,具体代码如下: package com.bstek.tools; import java.io.FileInputStream; import java.io.IOExcept ...
- 一小部分用python进行MD5加密的小技巧
上个图 要求计算出开头为ae3da且盐值为3c6e的字符串 简单的思路就是直接进行枚举,然后筛选符合条件的MD5加密字符,代码如下 #-*- coding:utf- -*- import hashli ...
- Java三行代码搞定MD5加密,测试5c短信网关的demo
看到之前项目中,关于MD5加密的足足写了一个辅助类. 其实在Java中大部分都帮你实现好了,完成MD5加密,主要就三行代码: /** * 对字符串md5加密 * * @param str * @ret ...
- MD5加密代码
import java.security.MessageDigest;public class MD5_tes { public final static String MD5(String s){ ...
- .NET MD5加密解密代码
MD5简介: 是让大容量信息在用数字签名软件签署私人密匙前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的大整数).不管是MD2.MD4还是MD5,它们都需要获 ...
- 【代码笔记】iOS-使用MD5加密
一,代码. - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, ...
随机推荐
- Python+Selenium笔记(三):使用unittest
#网络很慢可能会运行报错 (一) 前言 Selenium WebDriver是一个浏览器自动化测试的API集合.它提供了很多与浏览器自动化交互的特性,并且这些API主要是用于测试Web程序.如果仅 ...
- js实现双向链表
1.概念 上一个文章里我们已经了解到链表结构,链表的特点是长度不固定,不用担心插入新元素的时候新增位置的问题.插入一个元素的时候,只要找到插入点就可以了,不需要整体移动整个结构. 这里我们了解一下双向 ...
- Visual Basic 6.0(VB6.0)详细安装过程
注:大家如果没有VB6.0的安装文件,可自行百度一下下载,一般文件大小在200M左右的均为完整版的软件,可以使用. 特别提示:安装此软件的时候最好退出360杀毒软件(包括360安全卫士,电脑管家等,如 ...
- 【Git】从服务器搭建到提交分支使用——初学者轻松上手篇
GitHub就是一个免费托管开源代码的远程仓库,个人可以把代码寄存处上面,不过会被公开.对于商业公司来说在Linux上搭建一台Git服务器作为私有仓库使用.开发人员在本地下载仓库代码,协同开发.本篇介 ...
- NGUI Clip Animation (UI动画)
效果预览 视频:http://pan.baidu.com/s/1ntr3XSt 运行环境 Unity 4.5, NGUI3.5, iTween 场景搭建 创建一个UIPanel,UIPanel下再创建 ...
- java实现安全证书相关操作
https://blog.csdn.net/zhushanzhi/article/details/77864516 版权声明:本文为博主原创文章,未经博主允许不得转载. package test; i ...
- Windows XP添加硬盘后系统不能识别(没有任何反应)
解决方法: 1.右键我的电脑--管理--设备管理器--IDE ATA/ATAPI控制器,启用次要IDE通道和主要IDE通道,打开属性,在高级设置里,将设备类型设置为自动检测,重启. 2.硬盘格式为GP ...
- MySql8.0.15 window 初始化 修改密码
1.将安装包解压到安装目录: 2.将安装目录下的bin文件目录添加到系统变量中: 3.初始话数据库 mysqld --initialize --console 执行完成后,会打印 root 用户的初始 ...
- 3.2Python的循环结构语句:
返回总目录 目录: 1.while循环 2.for循环 3.循环保留字:break与continue 循环总览: (一)while循环: (1)单个while循环: while 条件: 循环体 ...
- October 18th 2017 Week 42nd Wednesday
Only someone who is well-prepared has the opportunity to improvise. 只有准备充分的人才能够尽兴表演. From the first ...