第一范文网 - 专业文章范例文档资料分享平台

H3C-cams DES加密算法研究总结

来源:用户分享 时间:2020-06-22 本文由寂寂无言 分享 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

H3C加密算法研究总结

1、 使用的密码算法为DES+BASE64 (DES使用默认的加密密钥“liuan814”) 2、 从IMC-PLAT.jar中提取出的加密和解密代码片段 CommonUtils.class中的: @ExternalInterface

private static final byte[] j = \ private static Cipher k; private static Cipher l;

public static byte[] encryptData(byte[] paramArrayOfByte) {

if (k == null) { try {

DESKeySpec localDESKeySpec = new DESKeySpec(j);

SecretKeyFactory localSecretKeyFactory = SecretKeyFactory.getInstance(\ SecretKey localSecretKey = localSecretKeyFactory.generateSecret(localDESKeySpec); k = Cipher.getInstance(\ k.init(1, localSecretKey);

} catch (Exception localException1) { a.error(null, localException1); return null; }

}

byte[] arrayOfByte = null; try {

arrayOfByte = k.doFinal(paramArrayOfByte); } catch (Exception localException2) { a.error(null, localException2); return null; }

if (arrayOfByte != null) {

return Base64.encodeBase64(arrayOfByte); }

return null; }

@ExternalInterface

public static byte[] decryptData(byte[] paramArrayOfByte) {

if (l == null) { try {

DESKeySpec localDESKeySpec = new DESKeySpec(j);

SecretKeyFactory localSecretKeyFactory = SecretKeyFactory.getInstance(\ SecretKey localSecretKey = localSecretKeyFactory.generateSecret(localDESKeySpec); l = Cipher.getInstance(\ l.init(2, localSecretKey);

} catch (Throwable localThrowable) { return null; }

}

byte[] arrayOfByte = Base64.decodeBase64(paramArrayOfByte); if (arrayOfByte == null) { return null; }

try {

return l.doFinal(arrayOfByte); } catch (Exception localException) { a.error(null, localException); }return null; }

提取出的代码放到eclipse中加工后进行测试。这里需要说明的是,需要把两个文件imc-plat.jar和从网上下载和Cipher加密算法相关的commons-codec-1.8.jar放到jre的相关目录中,我的是:C:\\Program Files\\Java\\jre7\\lib\\ext,在运行的时候会有一些奇怪的错误,解决方式如图。

可用的java代码:desjjm.java package com.h3c.imc.common;

import javax.crypto.spec.DESKeySpec; import javax.crypto.Cipher; import javax.crypto.SecretKey;

import javax.crypto.SecretKeyFactory;

import org.apache.commons.codec.binary.*;

public class desjjm {

private static final byte[] j = \private static Cipher k; private static Cipher l;

//加密算法

public static byte[] encryptData(byte[] paramArrayOfByte) {

if (k == null) { try {

DESKeySpec localDESKeySpec = new DESKeySpec(j);

SecretKeyFactory localSecretKeyFactory = SecretKeyFactory.getInstance(\ SecretKey localSecretKey = localSecretKeyFactory.generateSecret(localDESKeySpec); k = Cipher.getInstance(\

k.init(1, localSecretKey);

} catch (Exception localException1) { return null; } }

byte[] arrayOfByte = null; try {

arrayOfByte = k.doFinal(paramArrayOfByte); } catch (Exception localException2) { //a.error(null, localException2); return null; }

if (arrayOfByte != null) {

return Base64.encodeBase64(arrayOfByte); }

return null; }

//解密算法

public static byte[] decryptData(byte[] paramArrayOfByte) {

if (l == null) { try {

DESKeySpec localDESKeySpec = new DESKeySpec(j);

SecretKeyFactory localSecretKeyFactory = SecretKeyFactory.getInstance(\ SecretKey localSecretKey = localSecretKeyFactory.generateSecret(localDESKeySpec); l = Cipher.getInstance(\ l.init(2, localSecretKey);

} catch (Throwable localThrowable) { return null; } }

byte[] arrayOfByte = Base64.decodeBase64(paramArrayOfByte); if (arrayOfByte == null) { return null; }

try

{

return l.doFinal(arrayOfByte); } catch (Exception localException) { }return null; }

public static void main(String[] args) { //演示加密算法 String mwpass=\ byte[] jmpass; jmpass=encryptData(mwpass.getBytes()); String dispjmpass; dispjmpass = new String(jmpass); System.out.println(dispjmpass); //演示解密算法 byte[] encryptedpass;//已加密字符串 byte[] realpass;//实际密码二进制串 String realpassStr;//实际密码字符串 String encryptedpassStr=\ encryptedpass = encryptedpassStr.getBytes(); realpass=decryptData(encryptedpass); realpassStr=new String(realpass); System.out.println(realpassStr); //Base64算法测试 //加密 String str= \为要加密的字符串 byte[] b = Base64.encodeBase64(str.getBytes()); System.out.println(new String(b)); //解密 str = \为要解密的字符串 b = Base64.decodeBase64(str.getBytes()); System.out.println(new String(b)); } }

搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新幼儿教育H3C-cams DES加密算法研究总结 全文阅读和word下载服务。

H3C-cams DES加密算法研究总结 .doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/wenku/1093705.html(转载请注明文章来源)
热门推荐
Copyright © 2018-2022 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top