百科狗-知识改变命运!
--

des密钥如何生成 java

百变鹏仔1年前 (2023-12-20)阅读数 6#综合百科
文章标签明文函数

package Encrypt;

import java.security.*;

import javax.crypto.*;

import sun.misc.*;

/**

* 使用DES加密与解密,可对byte[],String类型进行加密与解密

* 密文可使用String,byte[]存储.

* 方法:

* void getKey(String strKey)从strKey的字条生成一个Key

* String getEncString(String strMing)对strMing进行加密,返回String密文

* String getDesString(String strMi)对strMin进行解密,返回String明文

* byte[] getEncCode(byte[] byteS)byte[]型的加密

* byte[] getDesCode(byte[] byteD)byte[]型的解密

*/

public class Encrypt{

private Key key;

private byte[] byteMi = null;

private byte[] byteMing = null;

private String strMi= "";

private String strM= "";

// 根据参数生成KEY

public void setKey(String strKey){

try{

KeyGenerator _generator = KeyGenerator.getInstance("DES");

_generator.init(new SecureRandom(strKey.getBytes()));

this.key = _generator.generateKey();

_generator=null;

}

catch(Exception e){

e.printStackTrace();

}

}

// 加密String明文输入,String密文输出

public void setEncString(String strMing){

BASE64Encoder base64en = new BASE64Encoder();

try {

this.byteMing = strMing.getBytes("UTF8");

this.byteMi = this.getEncCode(this.byteMing);

this.strMi = base64en.encode(this.byteMi);

}

catch(Exception e)

{

e.printStackTrace();

}

finally

{

this.byteMing = null;

this.byteMi = null;

}

}

//加密以byte[]明文输入,byte[]密文输出

private byte[] getEncCode(byte[] byteS){

byte[] byteFina = null;

des密钥如何生成 java

Cipher cipher;

try

{

cipher = Cipher.getInstance("DES");

cipher.init(Cipher.ENCRYPT_MODE,key);

byteFina = cipher.doFinal(byteS);

}

catch(Exception e)

{

e.printStackTrace();

}

finally

{

cipher = null;

}

return byteFina;

}

// 解密:以String密文输入,String明文输出

public void setDesString(String strMi){

BASE64Decoder base64De = new BASE64Decoder();

try

{

this.byteMi = base64De.decodeBuffer(strMi);

this.byteMing = this.getDesCode(byteMi);

this.strM = new String(byteMing,"UTF8");

}

catch(Exception e)

{

e.printStackTrace();

}

finally

{

base64De = null;

byteMing = null;

byteMi = null;

}

}

// 解密以byte[]密文输入,以byte[]明文输出

private byte[] getDesCode(byte[] byteD){

Cipher cipher;

byte[] byteFina=null;

try{

cipher = Cipher.getInstance("DES");

cipher.init(Cipher.DECRYPT_MODE,key);

byteFina = cipher.doFinal(byteD);

}

catch(Exception e)

{

e.printStackTrace();

}

finally

{

cipher=null;

}

return byteFina;

}

//返回加密后的密文strMi

public String getStrMi()

{

return strMi;

}

//返回解密后的明文

public String getStrM()

{

return strM;

}

}

*注意:因为我用的时候是作为后台的BEAN来调用的,所以没有写main函数,也就不能直接运行了。必须加一个main()函数才能做为一个完成的JAVA程序使用。一个很简单的 main()函数就ok了,不用我写在这里了吧?呵呵!

在WEB前台调用这个BEAN文件时的语句:

//id="abc" 用来初始化一个对象

//变量Mi就是密文.

//变量M就是明文.

鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)