八、MD5加密并封装,并调用封装方法
一、MD5加密
封装Md5
public class Md5 { //十六进制下数字到字符的映射数组
private static final char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'A', 'B', 'C', 'D', 'E', 'F' }; /**把inputString加密*/
public static String md5Str(String inputStr){
return encrypt(inputStr);
} public static String encrypt(String inputStr) {
byte[] inStrBytes = inputStr.getBytes();
try {
//创建具有指定算法名称的信息摘要
MessageDigest MD = MessageDigest.getInstance("MD5");
//使用指定的字节数组对摘要进行最后更新,然后完成摘要计算
MD.update(inStrBytes);
byte[] mdByte = MD.digest();
char[] str = new char[mdByte.length * 2];
int k = 0;
for(int i=0;i<mdByte.length;i++) {
byte temp = mdByte[i];
str[k++] = hexDigits[temp >>> 4 & 0xf];
str[k++] = hexDigits[temp & 0xf];
}
return new String(str);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return null;
} }
二、一般 请求参数+secret 进行加密,故再次进行封装,并返回【请求参数+secret 】MD5加密后的字符串(32位)
import java.io.UnsupportedEncodingException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.util.TreeMap; public class SJS { //entrance
/**
* 对请求参数进行加密
* @param requestParams 请求参数
* @param secret 根秘钥
* @return
* @throws Exception
*/
public String getSJSInfo(TreeMap<String, Object> requestParams, String secret) throws Exception {
return sjsSi(buildParamStr(requestParams), secret);
} //调用MD5封装方法进行加密【入参+secret】
private String sjsSi(String signStr, String secret)
throws NoSuchAlgorithmException, UnsupportedEncodingException, InvalidKeyException {
return Md5.md5Str(signStr+secret);
} //将入参(格式key=value)与&进行拼接,并返回
public String buildParamStr(TreeMap<String, Object> requestParams) {
StringBuilder retStr = new StringBuilder();
for(String key: requestParams.keySet()) {
if (retStr.length()==0) {
retStr.append(key+"="+String.valueOf(requestParams.get(key)));
} else {
retStr.append("&"+key+"="+String.valueOf(requestParams.get(key)));
}
}
return retStr.toString();
} }
八、MD5加密并封装,并调用封装方法的更多相关文章
- JS中使用MD5加密
下载 MD5 使用MD5加密的方法:下载md5.js文件,在网页中引用该文件: < script type="text/javascript" src="md5.j ...
- MD5加密和sha加密
sha加密原理Algorithm)又叫安全哈希加密技术,是当今世界最先近的加密算法.主要用于文件身份识别.数字签名和口令加密等. 对于明文信息A,通过SHA1算法,生成一条160位长的识别码B.且明文 ...
- c# md5加密封装
/// <summary> /// md5加密字符串 /// </summary> /// <param name="str">需要加密的字符串 ...
- MD5加密封装
1.固定返回固定长度字符串(16位或者32位) /// <summary> /// 用MD5加密字符串,可选择生成16位或者32位的加密字符串 /// </summary> / ...
- java 调用apache.commons.codec的包简单实现MD5加密
转自:https://blog.csdn.net/mmd1234520/article/details/70210002/ import java.security.MessageDigest; im ...
- python接口自动化(三十四)-封装与调用--函数和参数化(详解)
简介 前面虽然实现了参数的关联,但是那种只是记流水账的完成功能,不便于维护,也没什么可读性,随着水平和技能的提升,再返回头去看前边写的代码,简直是惨不忍睹那样的代码是初级入门的代码水平都达不到.接下来 ...
- 依图语音API的C#封装以及调用进行语音转写的处理
对于语音识别,一般有实时语音识别和语音文件的识别处理等方式,如在会议.培训等场景中,可以对录制的文件进行文字的转录,对于转录文字的成功率来说,如果能够转换90%以上的正确语音内容,肯定能减轻很多相关语 ...
- Delphi 中的DLL 封装和调用对象技术(刘艺,有截图)
Delphi 中的DLL 封装和调用对象技术本文刊登2003 年10 月份出版的Dr.Dobb's 软件研发第3 期刘 艺摘 要DLL 是一种应用最为广泛的动态链接技术但是由于在DLL 中封装和调用对 ...
- DES加密解密 与 Cookie的封装(C#与js互相加密解密)
2D JS框架 - DES加密解密 与 Cookie的封装(C#与js互相加密解密) 这次实现了JS端的DES加密与解密,并且C#端也能正确解析DES的密文(反之也实现了) 使用的代码如下,非常方 ...
随机推荐
- VS2017 VS2019 无法进入安装界面闪退问题(windows7SP1)
如果离线安装 Visual Studio 2017/2019出现“即将完成…一切即将准备就绪.”的画面后,等几秒安装程序没有任何错误提示就关闭了,无法继续安装. 解决方法: 将vs_enterpris ...
- Linux Exploit系列之六 绕过ASLR - 第一部分
绕过ASLR - 第一部分 什么是 ASLR? 地址空间布局随机化(ASLR)是随机化的利用缓解技术: 堆栈地址 堆地址 共享库地址 一旦上述地址被随机化,特别是当共享库地址被随机化时,我们采取的绕过 ...
- 深入简出mysql--第一部分
第二章: 1.sql分类 DDL(Data Definition Languages)语句:数据定义语言,这些语句定义了不同的数据段.数据库.表.列.索引等数据库对象的定义. 常用的语句关键字主要包括 ...
- python3.7 利用pyhive 连接上hive(亲测可用)
来python爬虫中,经常会遇到数据的存储问题,如果有大量数据,hive存储是个不错的选择. 那么python如何来连接hive呢?网上有各种教程但是都不是很好用,亲自测试pyhive可用 要求:可用 ...
- EF报错:对一个或多个实体的验证失败(Entity Framework 强制转换失败数据异常处理方法)
1.使用MVC和EF,在保存数据的时候报错:System.Data.Entity.Validation.DbEntityValidationException: 对一个或多个实体的验证失败.有关详细信 ...
- Java定义栈结构,实现入栈、出栈操作
package com.example.demo; import java.util.ArrayList; public class Stack { ArrayList<Object> l ...
- 第十篇.3、ython并发编程之多线程理论部分
一 什么是线程 在传统操作系统中,每个进程有一个地址空间,而且默认就有一个控制线程 线程顾名思义,就是一条流水线工作的过程,一条流水线必须属于一个车间,一个车间的工作过程是一个进程 车间负责把资源整合 ...
- kubesphere集群搭建(多节点)
kubesphere官网:https://kubesphere.io/docs/advanced-v2.0/zh-CN/introduction/intro/ 一.准备环境 1.准备服务器 maste ...
- PHP随机产生10个100以内互不相同的正整数按从小到大的顺序输出
<?php //产生1~100的正整数 $numbers = range(1,100); //从1~100中选出10个不重复的整数,并使用函数进行排序 $randNumbers = array_ ...
- MonkeyRunner的简介与综合实践
官方介绍: Monkeyrunner工具提供了一个API,用于编写可从Android代码外部控制Android设备或模拟器的程序.使用monkeyrunner,您可以编写一个Python程序来安装An ...