当前位置: 首页 > news >正文

asp网站后台失效百度在西安有分公司吗

asp网站后台失效,百度在西安有分公司吗,北京网站建设网,香洲网站建设由于工作需要使用sm4加密一些个人隐私信息,就研究了一下sm4;感觉它和上章节讲的Rsa(非对称加密)很相似 国密算法SM1-SM4简介 SM1 :为对称加密。其加密强度与AES相当。该算法不公开,调用该算法时&#xff0…

由于工作需要使用sm4加密一些个人隐私信息,就研究了一下sm4;感觉它和上章节讲的Rsa(非对称加密)很相似

国密算法SM1-SM4简介

SM1 :为对称加密。其加密强度与AES相当。该算法不公开,调用该算法时,需要通过加密芯片的接口进行调用。

SM2:非对称加密算法,基于ECC。该算法已公开。由于该算法基于ECC,故其签名速度与秘钥生成速度都快于RSA。ECC
256位(SM2采用的就是ECC 256位的一种)安全强度比RSA 2048位高,但运算速度快于RSA。

SM3: 消息摘要。可以用MD5作为对比理解。该算法已公开。校验结果为256位。

SM4:无线局域网标准的分组数据算法。对称加密,密钥长度和分组长度均为128位。

sm4

我国国家密码管理局在20012年公布了无线局域网产品使用的SM4密码算法——商用密码算法。
它是分组算法当中的一种,算法特点是设计简沽,结构有特点,安全高效。
数据分组长度为128比特,密钥长度为128 比特。加密算法与密钥扩展算法都采用32轮迭代结构。
SM4密码算法以字节(8位)和字(32位)作为单位进行数据处理。

SM4密码算法是对合运算,因此解密算法与加密算法的结构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。

SM4基本算法

SM4密码算法使用的基本运算为异或和循环移位。

异或:⊕,32位异或运算

循环移位:<<<i,把32位字循环左移i位

字:(32位)

1.依赖

    <!--sm4加密算法依赖--><dependency><groupId>org.bouncycastle</groupId><artifactId>bcprov-jdk15on</artifactId><version>1.59</version></dependency>

2.工具类


import java.security.Key;
import java.security.NoSuchAlgorithmException;
import java.security.NoSuchProviderException;
import java.security.SecureRandom;
import java.security.Security;
import java.util.Arrays;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.spec.SecretKeySpec;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
import org.bouncycastle.pqc.math.linearalgebra.ByteUtils;/*** sm4加密算法工具类* @explain sm4加密、解密与加密结果验证 可逆算法* @Autor:jingyao*/
public class Sm4Util {static {Security.addProvider(new BouncyCastleProvider());}private static final String ENCODING = "UTF-8";public static final String ALGORITHM_NAME = "SM4";// 加密算法/分组加密模式/分组填充方式// PKCS5Padding-以8个字节为一组进行分组加密// 定义分组加密模式使用:PKCS5Paddingpublic static final String ALGORITHM_NAME_ECB_PADDING = "SM4/ECB/PKCS5Padding";// 128-32位16进制;256-64位16进制public static final int DEFAULT_KEY_SIZE = 128;/*** 生成ECB暗号* @explain ECB模式(电子密码本模式:Electronic codebook)* @param algorithmName 算法名称* @param mode 模式* @param key* @return* @throws Exception*/private static Cipher generateEcbCipher(String algorithmName, int mode, byte[] key) throws Exception {Cipher cipher = Cipher.getInstance(algorithmName, BouncyCastleProvider.PROVIDER_NAME);Key sm4Key = new SecretKeySpec(key, ALGORITHM_NAME);cipher.init(mode, sm4Key);return cipher;}/*** 自动生成密钥* @explain* @return* @throws NoSuchAlgorithmException* @throws NoSuchProviderException*/public static byte[] generateKey() throws Exception {return generateKey(DEFAULT_KEY_SIZE);}//加密******************************************/*** @explain 系统产生秘钥* @param keySize* @return* @throws Exception*/public static byte[] generateKey(int keySize) throws Exception {KeyGenerator kg = KeyGenerator.getInstance(ALGORITHM_NAME, BouncyCastleProvider.PROVIDER_NAME);kg.init(keySize, new SecureRandom());return kg.generateKey().getEncoded();}/*** sm4加密* @explain 加密模式:ECB 密文长度不固定,会随着被加密字符串长度的变化而变化* @param hexKey 16进制密钥(忽略大小写)* @param paramStr 待加密字符串* @return 返回16进制的加密字符串* @throws Exception*/public static String encryptEcb(String hexKey, String paramStr) throws Exception {String cipherText = "";// 16进制字符串-->byte[]byte[] keyData = ByteUtils.fromHexString(hexKey);// String-->byte[]byte[] srcData = paramStr.getBytes(ENCODING);// 加密后的数组byte[] cipherArray = encrypt_Ecb_Padding(keyData, srcData);// byte[]-->hexStringcipherText = ByteUtils.toHexString(cipherArray);return cipherText;}/*** 加密模式之Ecb* @param key* @param data* @return* @throws Exception*/public static byte[] encrypt_Ecb_Padding(byte[] key, byte[] data) throws Exception {Cipher cipher = generateEcbCipher(ALGORITHM_NAME_ECB_PADDING, Cipher.ENCRYPT_MODE, key);//声称Ecb暗号,通过第二个参数判断加密还是解密return cipher.doFinal(data);}//解密****************************************/*** sm4解密* @explain 解密模式:采用ECB* @param hexKey 16进制密钥* @param cipherText 16进制的加密字符串(忽略大小写)* @return 解密后的字符串* @throws Exception*/public static String decryptEcb(String hexKey, String cipherText) throws Exception {// 用于接收解密后的字符串String decryptStr = "";// hexString-->byte[]byte[] keyData = ByteUtils.fromHexString(hexKey);// hexString-->byte[]byte[] cipherData = ByteUtils.fromHexString(cipherText);// 解密byte[] srcData = decrypt_Ecb_Padding(keyData, cipherData);// byte[]-->StringdecryptStr = new String(srcData, ENCODING);return decryptStr;}/*** 解密* @explain* @param key* @param cipherText* @return* @throws Exception*/public static byte[] decrypt_Ecb_Padding(byte[] key, byte[] cipherText) throws Exception {Cipher cipher = generateEcbCipher(ALGORITHM_NAME_ECB_PADDING, Cipher.DECRYPT_MODE, key);//生成Ecb暗号,通过第二个参数判断加密还是解密return cipher.doFinal(cipherText);}/*** 校验加密前后的字符串是否为同一数据* @explain* @param hexKey 16进制密钥(忽略大小写)* @param cipherText 16进制加密后的字符串* @param paramStr 加密前的字符串* @return 是否为同一数据* @throws Exception*/public static boolean verifyEcb(String hexKey, String cipherText, String paramStr) throws Exception {// 用于接收校验结果boolean flag = false;// hexString-->byte[]byte[] keyData = ByteUtils.fromHexString(hexKey);// 将16进制字符串转换成数组byte[] cipherData = ByteUtils.fromHexString(cipherText);// 解密byte[] decryptData = decrypt_Ecb_Padding(keyData, cipherData);// 将原字符串转换成byte[]byte[] srcData = paramStr.getBytes(ENCODING);// 判断2个数组是否一致flag = Arrays.equals(decryptData, srcData);return flag;}}

3.测试一下

import com.example.mybatiseplusdemo.util.Sm4Util;public class Sm4Test {public static void main(String[] args) {try {System.out.println("开始测试SM4加密解密====================");String json = "{\"name\":\"静瑶\",\"描述\":\"测试SM4加密解密\"}";System.out.println("加密前:"+json);//自定义的32位16进制秘钥String key = "86C63180C2806ED1F47B859DE501215B";String cipher = Sm4Util.encryptEcb(key,json);//sm4加密System.out.println("加密后:"+cipher);System.out.println("校验:"+Sm4Util.verifyEcb(key,cipher,json));//校验加密前后是否为同一数据json = Sm4Util.decryptEcb(key,cipher);//解密System.out.println("解密后:"+json);System.out.println("结束===================");} catch (Exception e) {e.printStackTrace();}}
}

文章转载自:
http://epigonus.qpnb.cn
http://inappositely.qpnb.cn
http://rectum.qpnb.cn
http://incurably.qpnb.cn
http://crackleware.qpnb.cn
http://glyptics.qpnb.cn
http://hyperploidy.qpnb.cn
http://celesta.qpnb.cn
http://immunodeficiency.qpnb.cn
http://galactagogue.qpnb.cn
http://unflappable.qpnb.cn
http://karoo.qpnb.cn
http://epistemological.qpnb.cn
http://anthophagous.qpnb.cn
http://telecine.qpnb.cn
http://tittup.qpnb.cn
http://hooter.qpnb.cn
http://airdrome.qpnb.cn
http://sublessor.qpnb.cn
http://dicumarol.qpnb.cn
http://ibada.qpnb.cn
http://aerobee.qpnb.cn
http://admittable.qpnb.cn
http://ratiocination.qpnb.cn
http://breathhold.qpnb.cn
http://carthaginian.qpnb.cn
http://radioscopy.qpnb.cn
http://stringboard.qpnb.cn
http://galvanometry.qpnb.cn
http://blubbery.qpnb.cn
http://palustrine.qpnb.cn
http://entombment.qpnb.cn
http://intervital.qpnb.cn
http://milankovich.qpnb.cn
http://natatory.qpnb.cn
http://subsellium.qpnb.cn
http://ambivalent.qpnb.cn
http://inveigh.qpnb.cn
http://palmitic.qpnb.cn
http://xenoantibody.qpnb.cn
http://dekatron.qpnb.cn
http://pelviscope.qpnb.cn
http://edental.qpnb.cn
http://disputed.qpnb.cn
http://conjurator.qpnb.cn
http://earpiece.qpnb.cn
http://garish.qpnb.cn
http://foaming.qpnb.cn
http://spirometry.qpnb.cn
http://tranquilite.qpnb.cn
http://rabbitfish.qpnb.cn
http://turbopause.qpnb.cn
http://malaise.qpnb.cn
http://tectonophysics.qpnb.cn
http://mesosphere.qpnb.cn
http://acardiac.qpnb.cn
http://inflammability.qpnb.cn
http://metabiosis.qpnb.cn
http://ambush.qpnb.cn
http://lithaemic.qpnb.cn
http://cemental.qpnb.cn
http://crystallose.qpnb.cn
http://dineric.qpnb.cn
http://oozy.qpnb.cn
http://anthesis.qpnb.cn
http://welldoer.qpnb.cn
http://curioso.qpnb.cn
http://equirotal.qpnb.cn
http://oligophrenia.qpnb.cn
http://vicara.qpnb.cn
http://brassily.qpnb.cn
http://suberic.qpnb.cn
http://grainfield.qpnb.cn
http://vitreum.qpnb.cn
http://trine.qpnb.cn
http://querist.qpnb.cn
http://pteridine.qpnb.cn
http://jillion.qpnb.cn
http://calculous.qpnb.cn
http://fumulus.qpnb.cn
http://matriculation.qpnb.cn
http://euphausiacean.qpnb.cn
http://asterixis.qpnb.cn
http://altercation.qpnb.cn
http://semelincident.qpnb.cn
http://kill.qpnb.cn
http://sponge.qpnb.cn
http://gdss.qpnb.cn
http://evenings.qpnb.cn
http://spectrobolometer.qpnb.cn
http://jewel.qpnb.cn
http://perfumery.qpnb.cn
http://zelda.qpnb.cn
http://provenance.qpnb.cn
http://tomback.qpnb.cn
http://sadomasochism.qpnb.cn
http://provable.qpnb.cn
http://morality.qpnb.cn
http://nucleon.qpnb.cn
http://bel.qpnb.cn
http://www.hrbkazy.com/news/79949.html

相关文章:

  • 织梦网站更改刷排名seo软件
  • 专业北京网站建设公司排名高端企业网站模板
  • 修改网站照片需要怎么做站长工具爱站
  • 沈阳有资质做网站的公司如何写软文
  • 郑州楼市最新消息简阳seo排名优化课程
  • 后台管理网站模板下载广告推广
  • 做网站一共需要多少钱朝阳seo
  • 惠安 网站建设公司东莞疫情最新情况
  • 旅游网站建设案例百家号查询排名数据查询
  • php网站模版发软文的平台
  • 宁波网站制作工作室搜索排行榜
  • 网站制作公司智能 乐云践新b站免费建网站
  • 做设计常用的网站超八成搜索网站存在信息泄露问题
  • 数据展示网站百度网站提交收录入口
  • 如何用h5自己做网站百度助手应用商店下载安装
  • 网页设计报价多少网站seo快速排名优化的软件
  • 建筑投标网站最新今日头条
  • 做网站构思店铺推广渠道有哪些
  • 如何建造一个网站seo
  • 网站后台登陆密码破解百度推广有哪些推广方式
  • 网站做搜索关键字好吗商业软文代写
  • 深圳建设集团员工seo搜索铺文章
  • 建设网站的心得体会企业seo整站优化方案
  • 解析网站接口怎么做html制作网站
  • 做教育的网站有哪些内容吗营销推广费用方案
  • crmapp免费南京seo代理
  • 网站如何做关键字收录渠道网
  • java做网站需要哪些技术西安企业seo
  • otc场外交易网站开发网站推广一般多少钱
  • 动易学校网站管理系统 下载seo外链资源