MD5(3)
|
import java.io.UnsupportedEncodingException; import java.security.PrivateKey; import java.security.SignatureException; import org.apache.commons.codec.digest.DigestUtils; /** * MD5签名处理核心文件 * */ public class MD5 { /** * 签名字符串 * * @param text * 需要签名的字符串 * @param key * 密钥 * @param input_charset * 编码格式 * @return 签名结果 */ public static String sign(String text, String key, String charset) throws Exception { text = text + key; return DigestUtils.md5Hex(getContentBytes(text, charset)); } /** * 签名字符串 * * @param text * 需要签名的字符串 * @param key * 密钥 * @param input_charset * 编码格式 * @return 签名结果 * @deprecated 无替代方法 */ public static String sign(String text, PrivateKey key, String charset) throws Exception { throw new UnsupportedOperationException(); } /** * 签名字符串 * * @param text * 需要签名的字符串 * @param sign * 签名结果 * @param key * 密钥 * @param input_charset * 编码格式 * @return 签名结果 */ public static boolean verify(String text, String sign, String key, String charset) throws Exception { text = text + key; String mysign = DigestUtils.md5Hex(getContentBytes(text, charset)); if (mysign.equals(sign)) { return true; } else { return false; } } /** * @param content * @param charset * @return * @throws SignatureException * @throws UnsupportedEncodingException */ private static byte[] getContentBytes(String content, String charset) { if (charset == null || "".equals(charset)) { return content.getBytes(); } try { return content.getBytes(charset); } catch (UnsupportedEncodingException e) { throw new RuntimeException("签名过程中出现错误,指定的编码集不对,您目前指定的编码集是:" + charset); } } } |
MD5(3)的更多相关文章
- Bugku-CTF加密篇之这不是md5(666c61677b616537333538376261353662616566357d)
这不是md5 666c61677b616537333538376261353662616566357d
- 新技能 get —— 如何校验 md5(windows)
我们在某资源网站上下载完成指定文件后,尤其是一些下载所需较高时长的大型文件,如何检验下载的文件是否完好,也即如何保证和原始网站上的资源一样.此时就要用到检验码的机制,一般文件的下载界面,通常都会给出此 ...
- 来自牛逼哥的阴间MD5(web)
这个web题目是来自队里面牛逼哥的题目,审计源码, 看到这两个参数,前面的a和b就是直接输出数字,再看下面的,需要弱比较的输出一个c,要求应该是需要一个加密之前是一个0e开头的字符串,加密之后还是0e ...
- 网络编程基础【day09】:socket解决粘包问题之MD5(八)
本节内容 1.概述 2.代码实现 一.概述 上一篇博客讲到的用MD5来校验还是用的之前解决粘包的方法,就是客户端发送一个请求,等待服务端的确认的这样的一个笨方法.下面我们用另外一种方法:就是客户端已经 ...
- MD5(2)
/************************************************ MD5 算法的Java Bean @author:Topcat Tuppin Last Modifi ...
- 亲历H5移动端游戏微信支付接入及那些坑(三)——支付接入
终于到接入支付了,小小的一个微信支付,居然也写了3篇,好长,好累. 接入环境 对接入环境,前端的话,应该是以js为主吧,也有可能是,PHP,Java,C++,或者C#都可以.为什么在此特意提一下接入环 ...
- HTTP认证之摘要认证——Digest(一)
导航 HTTP认证之基本认证--Basic(一) HTTP认证之基本认证--Basic(二) HTTP认证之摘要认证--Digest(一) HTTP认证之摘要认证--Digest(二) 一.概述 Di ...
- Android OkHttp与物理存储介质缓存:DiskLruCache(2)
Android OkHttp与物理存储介质缓存:DiskLruCache(2) 本文在附录文章8,9的基础之上,把Android OkHttp与DiskLruCache相结合,综合此两项技术,实 ...
- 网络测试技术——802.1X_MD5认证(下篇)
上篇我们讲到802.1X_MD5的简介.认证过程.测试组网以及测试环境准备,本期我们将为大家带来测试的详细步骤: 六.测试仪配置 1.占用端口 端口功能 (1)端口1用来模拟DOT1X和发送流量 (2 ...
随机推荐
- SLF4J: Failed to load class "org.slf4j.impl.StaticLo
今天在修改项目是修改了pom中的配置启动后提示下面的错误, SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder&qu ...
- Linux命令——uname
简介 uname用于输出系统信息. uname参数 -a :所有系统相关的资讯,包括底下的数据都会被列出来:-s :系统核心名称-r :核心的版本-m :本系统的硬件名称,例如 i686 或 x86_ ...
- 树莓派配置samba服务器,实现linux、windows文件共享
一.安装samba服务器 输入如下命令: 二.配置文件smb.conf 找到[homes],将read only那里的yes改为no,允许读写 添加用户和设置密码 sudo smbpasswd -a ...
- MYSQL中常见的时间处理
use test; select getdate() select sysdate(); select now(); select current_timestamp select current_t ...
- [POJ2083] Fracal
Description A fractal is an object or quantity that displays self-similarity, in a somewhat technica ...
- springboot的第一节课
快速开始spring boot应用 官方向导搭建boot应用 地址:http://start.spring.io/ 设置项目属性: 3.解压,拷贝到工作空间,导入maven项目 4.写Controll ...
- AtCoder Beginner Contest 126 解题报告
突然6道题.有点慌.比赛写了五个.罚时爆炸.最后一个时间不太够+没敢写就放弃了. 两道题奇奇怪怪的WJ和20/20.今天的评测机是怎么了. A Changing a Character #includ ...
- Otsu 类间方差法
又称最大类间方差法.是由日本学者大津(Nobuyuki Otsu)于1979年提出的[1],是一种自适合于双峰情况的自动求取阈值的方法.又叫大津法,简称Otsu. 算法提出初衷是是按图像的灰度特性 ...
- 目标检测的mAp
众多目标检测的知识中,都提到了mAp一值,那么这个东西到底是什么呢: 我们在评价一个目标检测算法的"好坏"程度的时候,往往采用的是pascal voc 2012的评价标准mAP.目 ...
- 洛谷 P3376 【模板】网络最大流 题解
今天学了网络最大流,EK 和 Dinic 主要就是运用搜索求增广路,Dinic 相当于 EK 的优化,先用bfs求每个点的层数,再用dfs寻找并更新那条路径上的值. EK 算法 #include< ...