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

dede多个网站怎么做做兼职女的网站

dede多个网站怎么做,做兼职女的网站,张家港保税区建设局网站,站点由于工作需要使用sm4加密一些个人隐私信息#xff0c;就研究了一下sm4#xff1b;感觉它和上章节讲的Rsa#xff08;非对称加密#xff09;很相似 国密算法SM1-SM4简介 SM1 #xff1a;为对称加密。其加密强度与AES相当。该算法不公开#xff0c;调用该算法时#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加密算法依赖--dependencygroupIdorg.bouncycastle/groupIdartifactIdbcprov-jdk15on/artifactIdversion1.59/version/dependency2.工具类 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加密、解密与加密结果验证 可逆算法* Autorjingyao*/ 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://www.w-s-a.com/news/133614/

相关文章:

  • 炫酷业务网站课程网站如何建设方案
  • 网站建设服务器可以租吗wordpress微信打赏
  • 网站制作的重要流程图大连网站优化快速排名
  • 河南省住房建设厅官方网站注册公司邮箱需要什么
  • 美橙网站注册华为手机网站建设策划方案论文
  • 河南省和建设厅网站首页在线图片翻译
  • 关于备案空壳网站清理通知去别人网站挂黑链
  • 做网站待遇世界购物平台排行榜
  • 售后服务网站什么网站免费做简历模板
  • 网站模板怎么修改成都网站优化seo
  • 给装修公司做推广的网站wordpress站点的根目录
  • 怎么创建企业网站wordpress怎么做404页面跳转
  • 福建省住房和建设厅网站网站做著作权
  • 编程代码网站网站搭建的注意事项
  • 音乐网站排名公司如何做自己的网站
  • 网站设计模式三网合一网站源代码
  • 珠海市品牌网站建设哪家好宛城区网站制作
  • 网站维护工程师代写文章兼职
  • 贵州城乡和建设厅网站企业网站备案名称窍门
  • .cc后缀网站湛江霞山
  • 青岛制作网站软件ui设计培训哪里好
  • 网站建设的构思环保公司宣传册设计样本
  • 如何做微网站网站和网店的区别
  • 免费下载建设银行官方网站下载天河区做网站
  • 中文网站建设开发北京网站建设公司升上去
  • 邯郸网站设计 贝壳下拉服务器绑定网站打不开
  • 重庆网站建设帝玖科技手机网站建设价钱是多少
  • 广西建设厅网站行业网学新媒体运营要多少钱
  • 石家庄个人建站网站策划门户网什么意思
  • 沈阳市浑南区城乡建设局网站wordpress 批量打印