南昌网站开发培训中心建筑行业网站建设
news/
2025/10/5 1:03:11/
文章来源:
南昌网站开发培训中心,建筑行业网站建设,今天最新生猪价格,个人站长怎么样做网站才不会很累Java使用3DES加密解密的流程①传入共同约定的密钥(keyBytes)以及算法(Algorithm)#xff0c;来构建SecretKey密钥对象SecretKey deskey new SecretKeySpec(keyBytes#xff0c; Algorithm);②根据算法实例化Cipher对象。它负责加密/解密Cipher c1 Cipher.getInstance(Algor…Java使用3DES加密解密的流程①传入共同约定的密钥(keyBytes)以及算法(Algorithm)来构建SecretKey密钥对象SecretKey deskey new SecretKeySpec(keyBytes Algorithm);②根据算法实例化Cipher对象。它负责加密/解密Cipher c1 Cipher.getInstance(Algorithm);③传入加密/解密模式以及SecretKey密钥对象实例化Cipher对象c1.init(Cipher.ENCRYPT_MODE deskey);④传入字节数组调用Cipher.doFinal()方法实现加密/解密并返回一个byte字节数组c1.doFinal(src);3DES案例—SecretUtils.java(3DES加密解密的工具类)—package my3des;import java.io.UnsupportedEncodingException;import javax.crypto.Cipher;import javax.crypto.SecretKey;import javax.crypto.spec.SecretKeySpec;/*** SecretUtils {3DES加密解密的工具类 }* author William* date 2013-04-19*/public class SecretUtils {//定义加密算法有DES、DESede(即3DES)、Blowfishprivate static final String Algorithm “DESede”;private static final String PASSWORD_CRYPT_KEY “2012PinganVitality075522628888ForShenZhenBelter075561869839”;/*** 加密方法* param src 源数据的字节数组* return*/public static byte encryptMode(byte src) {try {SecretKey deskey new SecretKeySpec(build3DesKey(PASSWORD_CRYPT_KEY) Algorithm); //生成密钥Cipher c1 Cipher.getInstance(Algorithm); //实例化负责加密/解密的Cipher工具类c1.init(Cipher.ENCRYPT_MODE deskey); //初始化为加密模式return c1.doFinal(src);} catch (java.security.NoSuchAlgorithmException e1) {e1.printStackTrace();} catch (javax.crypto.NoSuchPaddingException e2) {e2.printStackTrace();} catch (java.lang.Exception e3) {e3.printStackTrace();}return null;}/*** 解密函数* param src 密文的字节数组* return*/public static byte decryptMode(byte src) {try {SecretKey deskey new SecretKeySpec(build3DesKey(PASSWORD_CRYPT_KEY) Algorithm);Cipher c1 Cipher.getInstance(Algorithm);c1.init(Cipher.DECRYPT_MODE deskey); //初始化为解密模式return c1.doFinal(src);} catch (java.security.NoSuchAlgorithmException e1) {e1.printStackTrace();} catch (javax.crypto.NoSuchPaddingException e2) {e2.printStackTrace();} catch (java.lang.Exception e3) {e3.printStackTrace();}return null;}/** 根据字符串生成密钥字节数组* param keyStr 密钥字符串* return* throws UnsupportedEncodingException*/public static byte build3DesKey(String keyStr) throws UnsupportedEncodingException{byte key new byte24; //声明一个24位的字节数组默认里面都是0byte temp keyStr.getBytes(“UTF-8”); //将字符串转成字节数组/*77 * 执行数组拷贝* System.arraycopy(源数组从源数组哪里开始拷贝目标数组拷贝多少位)*/if(key.length 》 temp.length){//如果temp不够24位则拷贝temp数组整个长度的内容到key数组中System.arraycopy(temp 0 key 0 temp.length);}else{//如果temp大于24位则拷贝temp数组24个长度的内容到key数组中System.arraycopy(temp 0 key 0 key.length);}return key;}}—Main.java(测试类)—package my3des;public class Main {/*** param args*/public static void main(String args) {String msg “3DES加密解密案例”;System.out.println(“【加密前】” msg);//加密byte secretArr SecretUtils.encryptMode(msg.getBytes());System.out.println(“【加密后】” new String(secretArr));//解密byte myMsgArr SecretUtils.decryptMode(secretArr);System.out.println(“【解密后】” new String(myMsgArr));}}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/927746.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!