首页 > 编程语言 >java安全架构____java SHA加密

java安全架构____java SHA加密

时间:2023-09-13 15:35:05浏览次数:36  
标签:messageDigest MessageDigest java String getInstance ____ SHA 加密


package com.security.sha;

import java.security.MessageDigest;

/**
 * @author Administrator
 * sha 加密 推荐先
 */
public class Sha {
	public static void main(String[] args) throws Exception {
		System.out.println("简单的sha加密__:"+shaEncode("123456"));
		//避免不同人密文相同
		System.out.println("带key映射的加密__:"+shaKeyEncode("zhangsan","123456"));
	}
	public static String shaEncode(String generalStr) throws Exception {
		MessageDigest messageDigest = MessageDigest.getInstance("SHA");
		// MessageDigest messageDigest = MessageDigest.getInstance("SHA-256");
		// MessageDigest messageDigest = MessageDigest.getInstance("SHA-384");
		// MessageDigest messageDigest = MessageDigest.getInstance("SHA-512");
		messageDigest.update(generalStr.getBytes("UTF-8"));
		byte[] bytes = messageDigest.digest();
		String shaStr = "";
		for (int i = 0; i < bytes.length; i++) {
			String hex = Integer.toHexString(bytes[i] & 0xFF);
			if (hex.length()<2) {
				hex = hex + "0";
			}
			shaStr = shaStr + hex;
		}
		return shaStr;
	}
	public static String shaKeyEncode(String username,String password) throws Exception {
		String generalStr=username+password;
		MessageDigest messageDigest = MessageDigest.getInstance("SHA");
		// MessageDigest messageDigest = MessageDigest.getInstance("SHA-256");
		// MessageDigest messageDigest = MessageDigest.getInstance("SHA-384");
		// MessageDigest messageDigest = MessageDigest.getInstance("SHA-512");
		messageDigest.update(generalStr.getBytes("UTF-8"));
		byte[] bytes = messageDigest.digest();
		String shaStr = "";
		for (int i = 0; i < bytes.length; i++) {
			String hex = Integer.toHexString(bytes[i] & 0xFF);
			if (hex.length()<2) {
				hex = hex + "0";
			}
			shaStr = shaStr + hex;
		}
		return shaStr;
	}

}

//运行结果

java安全架构____java SHA加密_i++

//网上结果对比

java安全架构____java SHA加密_i++_02



标签:messageDigest,MessageDigest,java,String,getInstance,____,SHA,加密
From: https://blog.51cto.com/ratelcloud/7455541

相关文章

  • (随笔)记录MP update()无法置空字段的问题
    问题在code编写的时候有遇到需求,即保存或更新操作之前需要对reason和medication_receipt字段进行清空操作,确保一条数据中这两个字段不能同时有值,由于是Springboot+MybatpisPlus的框架,因此第一反应是通过mp的update方法进行更新操作。for(FollowupPapRecordDetailfollowupPapR......
  • java安全架构____java MD5加密
    packagecom.security.md5;importjava.security.MessageDigest;/***@authormd5**/publicclassMd5{ publicstaticvoidmain(String[]args)throwsException{ System.out.println("简单md5加密____:"+md5Encode("123456")); //避免不同......
  • dubbo分布式项目开发____配置经验和心得
    //1.zookeeper配置文件中不要出现中文会报错 //2.分布式开发对象一定要序列化//摘抄如下在面向对象程序语言中做分布式计算的时候,经常需要将对象在不同的主机之间传输,我这次在实现分布式计算的时候,需要将一个计算对象从中央服务器Server分发给所有的客户端client。通过......
  • Flask基础入门到精通之flask准备和路由
    一、前言Flask诞生于2010年,是Arminronacher(阿明·罗纳彻)用Python语言基于Werkzeug工具箱编写的轻量级Web开发框架。Flask本身相当于一个内核,其他几乎所有的功能都要用到扩展(邮件扩展Flask-Mail,用户认证Flask-Login,数据库Flask-SQLAlchemy),都需要用第三方的扩展来实现。比如......
  • dubbo分布式项目开发____dubbo控制台管理
    //1.将dubbo-admin放到tomcat下自行解压修改dubbo.properties文件结构如下为了避免冲突如用到多个tomcat时修改端口号即可8080  其他8081...2..3..4等//从命名下war包的名称不带版本号放到tomcat下解压出来的就不带版本号了//启动tomcat访问这个项目我个人用的是8081单独......
  • 《VUE》走马灯组件
    <template><!--走马灯--><divclass="box"><divclass="carousel"><divclass="item"v-for="(v,i)inlist":key="i"@click="open(v)"><img:sr......
  • dubbo分布式项目开发____dubbo服务调用开发
    //创建工程名 cnse-customer-user导入jar包 //工程结构//spring文件配置<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ......
  • git 回撤操作
    背景:同一个分支上,比如做了10个功能,有10次提交记录,但是产品突然说后面的五个功能不要了解决方案:git的revert命令。gitrevert命令的含义gitrevertcommitId1.表示撤销某个提交,并不是说撤销至某个提交。举个例子:新增1.txt文件进行第一次提交,新增2.txt文件进行第二次提交;此时......
  • dubbo分布式项目开发____dubbo服务接口开发
    //1.创建服务提供者工程名 cnse-provider-user //2.导入jar包和创建工程包名//配置spring的xml文件<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-i......
  • C# 实现二维码
    https://blog.csdn.net/qq_43562262/article/details/105988725查了下资料,约有两种方法,一种是引用新的dll,另一种是安装nuget中的QRcoder,在此记录下别人整理的资源。必须的引入的类库usingSystem;usingSystem.Drawing;usingSystem.Text;usingThoughtWorks.QRCode.Codec;//......