常用的加密解密算法

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;/*** Java常用的对密码加密的方法 对摘要信息进行加密编码*/
public class PasswordUtil {private final static String[] hexDigits = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d","e", "f" };/*** 将字节数组转换为16进制的字符串* * @param byteArray*            字节数组* @return 16进制的字符串*/private static String byteArrayToHexString(byte[] byteArray) {StringBuffer sb = new StringBuffer();for (byte byt : byteArray) {sb.append(byteToHexString(byt));}return sb.toString();}/*** 将字节转换为16进制字符串* * @param byt*            字节* @return 16进制字符串*/private static String byteToHexString(byte byt) {int n = byt;if (n < 0)n = 256 + n;return hexDigits[n / 16] + hexDigits[n % 16];}/*** 将摘要信息转换为相应的编码* * @param code*            编码类型* @param message*            摘要信息* @return 相应的编码字符串*/private static String encode(String code, String message) {MessageDigest md;String encode = null;try {md = MessageDigest.getInstance(code);encode = byteArrayToHexString(md.digest(message.getBytes()));} catch (NoSuchAlgorithmException e) {e.printStackTrace();}return encode;}/*** 将摘要信息转换成MD5编码* * @param message*            摘要信息* @return MD5编码之后的字符串*/public static String md5Encode(String message) {return encode("MD5", message);}/*** 将摘要信息转换成SHA编码* * @param message*            摘要信息* @return SHA编码之后的字符串*/public static String shaEncode(String message) {return encode("SHA", message);}/*** 将摘要信息转换成SHA-256编码* * @param message*            摘要信息* @return SHA-256编码之后的字符串*/public static String sha256Encode(String message) {return encode("SHA-256", message);}/*** 将摘要信息转换成SHA-512编码* * @param message*            摘要信息* @return SHA-512编码之后的字符串*/public static String sha512Encode(String message) {return encode("SHA-512", message);}@SuppressWarnings("unused")private String validate(String code, String tag) {if (code.equals(tag))return "通过验证";return "未通过验证";}
}

 

转载于:https://www.cnblogs.com/difme/p/5630347.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/470443.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue-cli4.x 中 配置允许跨域请求

在项目根目录下创建vue.config.js文件&#xff1a; vue.config.js: module.exports {devServer: {host: localhost,port: 8080,https: false,open: false, // 配置自动启动浏览器hotOnly: true, // 是否热更新proxy: {/api: { // 路径中有 /api 的请求都会走这个代理target: …

怎样不停请求接口实现实时刷新_快狗打车实时数仓和基于Hologres的数据服务建设...

前言 数据的实时化是最近几年数据行业很重要的趋势&#xff0c;我们在去年底也建立起新一代的实时数仓&#xff0c;但是在数据应用上一直没有取得很大的突破&#xff0c;我们希望实时数仓不仅仅是支撑大屏、核心实时报表、个别实时应用等简单的场景&#xff0c;希望更大…

c/c++参考文档

http://www.cplusplus.com/reference/cstdio/ 转载于:https://www.cnblogs.com/haxianhe/p/9271192.html

Vuex在项目中使用

案例1&#xff1a; 案例2&#xff1a; Token 是用户登录成功之后服务端返回的一个身份令牌&#xff0c;在项目中的多个业务中需要使用到 校验页面的访问权限 访问需要授权的 API 接口 … 但是我们只有在第一次用户登录成功之后才能拿到 Token。 所以为了能在其它模块中获取…

办公室分配方案python_Python自动化办公室(1),python,一

输出目录下所有文件及文件夹 创建临时文件及文件夹 输出目录下所有文件及文件夹 os模块简介 os是pyhon标准库&#xff0c;可以实现和操作系统有关的操作&#xff0c;例如创建&#xff0c;移动&#xff0c;复制文件和文件夹&#xff0c;文件路径和名称处理等等 注意&#xff1a;…

Vue移动端项目——Vant 移动端 REM 适配

Vant官方文档 Vant 中的样式默认使用 px 作为单位&#xff0c;如果需要使用 rem 单位&#xff0c;推荐使用以下两个工具&#xff1a; postcss-pxtorem 是一款 postcss 插件&#xff0c;用于将 px 单位转化为 rem lib-flexible 用于设置 rem 基准值 下面我们分别将这两个工具配…

Win7_刻录DVD

1、刻录 临时文件夹&#xff1a; 1.1、C:\Users\具体的用户名\AppData\Local\Microsoft\Windows\Burn 1.2、双击 插入刻录盘的光驱&#xff0c;直接将文件复制到 这里&#xff0c;实际上也就是 复制到 上面的文件夹中。 2、UltraISO 的 路径&#xff1a; C:\Users\33\AppData\L…

findbugs使用_FindBugs,一个帮你找bug的IDEA插件

前言 Findbugs很多人都并不陌生&#xff0c;Eclipse中有插件可以帮助查找代码中隐藏的bug&#xff0c;IDEA中也有这款插件。这个插件可以帮助我们查找隐藏的bug,比较重要的功能就是查找潜在的null指针。 在编写代码的过程中,我们可能不会一直记得检查空的引用,在我们测试时可能…

Java常量的应用

所谓常量&#xff0c;我们可以理解为是一种特殊的变量&#xff0c;它的值被设定后&#xff0c;在程序运行过程中不允许改变。 语法&#xff1a;final 常量名 值; 使用fianl关键字 常量名 值final String a1 "道具卡";fin…

Vue移动端项目——字体图标的使用

使用 iconfont 制作字体图标 设计师为我们单独提供了设计稿中的图标&#xff0c;为了方便使用&#xff0c;我们在这里把它制作为字体图标。 制作字体图标的工具有很多&#xff0c;在这里我们推荐大家使用&#xff1a;https://www.iconfont.cn/。 &#xff08;1&#xff09;登…

docker 虚拟机搭建mongodb一主一从一复制_云计算学习路线图素材课件:Docker容器应用场景分析...

Docker容器是一个开源的应用容器引擎&#xff0c;它能够自动执行重复性任务&#xff0c;例如搭建和配置开发环境&#xff0c;用户可以方便地创建和使用容器&#xff0c;还可以进行版本管理、复制、分享、修改。有很多初学云计算的同学不清楚Docker容器的使用方法以及应用场景&a…

Vue项目中 css样式的作用域(深度作用选择器)

vue官方文档 父组件对子组件设置的样式&#xff0c;只能作用到子组件的根节点上&#xff01;&#xff01;&#xff01;

沈逸老师ubuntu速学笔记(2)-- ubuntu16.04下 apache2.4和php7结合编译安装,并安裝PDOmysql扩展...

1、编译安装apache2.4.20 1 第一步&#xff1a; ./configure --prefix/usr/local/httpd --enable-so 2 第二步&#xff1a; make 3 第三步&#xff1a; sudo make install 2、编译安装libiconv 到这去下载&#xff0c;并编译安装 http://www.gnu.org/so…

git 提交文件_git原理与实战

一&#xff0c;序言之前在工作中也接触过git&#xff0c;但是没有在现公司这里用的功能这么多。主要的差异体现在如下两个方面&#xff1a;1&#xff0c;之前公司使用git主要基于图形用户界面&#xff0c;这对于处理冲突非常有帮助&#xff0c;不太容易改错地方&#xff1b;而现…

CSS——设置第一个以外的元素样式:not(:first-child),设置最后一个除外的元素样式:not(:last-child)

设置第一个以外的元素样式:not(:first-child),设置最后一个除外的元素样式:not(:last-child)

CPU结构与指令执行过程简介

CPU&#xff08;Central Processing Unit&#xff09;是计算机中进行算术和逻辑计算处理指令的主要部件. CPU结构 CPU由通用寄存器组,运算器,控制器和数据通路等部件组成. 寄存器包括 数据寄存器: AX&#xff0c;BX&#xff0c;CX&#xff0c;DX; 指针与变址寄存器:SP, BP, SI,…

mysql连接池_数据库技术:数据库连接池,Commons DbUtils,批处理,元数据

Database Connection PoolIntroduction to Database Connection Pool实际开发中“获得连接”或“释放资源”是非常消耗系统资源的两个过程&#xff0c;为了解决此类性能问题&#xff0c;通常情况我们采用连接池技术&#xff0c;来共享连接 Connection。这样我们就不需要每次都创…

关于第三方图片资源403问题

为什么文章列表数据中的好多图片资源请求失败返回 403&#xff1f; 这是因为我们项目的接口数据是后端通过爬虫抓取的第三方平台内容&#xff0c;而第三方平台对图片资源做了防盗链保护处理。 1. 第三方平台怎么处理图片资源保护的&#xff1f; 服务端一般使用 Referer 请求头…

单链表的初始化,整表创建,单个元素插入,单个元素删除,整表删除等操作...

很早之前学的数据结构&#xff0c;放了很久后&#xff0c;以致对里面的一些操作都有些遗忘&#xff0c;故而再次温习了一下数据结构&#xff0c;并整理了一点儿笔记&#xff0c;放在这里和大家分享&#xff0c; 我的代码注释的已经很详细了&#xff0c;对于容易出错的地方我也都…

hdfs复制文件夹_HDFS常用命令

一.HDFS命令行Hadoop help命令的使用1.hadoop -help查询所有Hadoop Shell支持的命令2.distcp这是Hadoop下的一个分布式复制程序&#xff0c;可以在不t同的HDFS集群间复制数据&#xff0c;也可以在本地文件间复制数据。hadoop distcp将/test/test.txt文件复制到/test/cp下面&…