`
tianlijia202
  • 浏览: 78516 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

java encode and decode by des

 
阅读更多

package com.tian.test16;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.security.*;

import javax.crypto.*;

import sun.misc.*;

public class Encrypt {
 private Key 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();
  }
 }

 public String encodeString(String str) {
  BASE64Encoder base64en = new BASE64Encoder();
  byte[] fisrt = null;
  try {
   fisrt = str.getBytes("UTF8");
  } catch (UnsupportedEncodingException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  Cipher cipher = null;
  try {
   cipher = Cipher.getInstance("DES");
  } catch (NoSuchAlgorithmException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (NoSuchPaddingException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  try {
   cipher.init(Cipher.ENCRYPT_MODE, key);
  } catch (InvalidKeyException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  byte[] second = null;
  try {
   second = cipher.doFinal(fisrt);
  } catch (IllegalBlockSizeException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (BadPaddingException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  String result = base64en.encode(second);
  return result;
 }

 public String decodeString(String str) {
  BASE64Decoder base64De = new BASE64Decoder();
  byte[] first = null;
  try {
   first = base64De.decodeBuffer(str);
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  Cipher cipher = null;
  try {
   cipher = Cipher.getInstance("DES");
  } catch (NoSuchAlgorithmException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (NoSuchPaddingException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  try {
   cipher.init(Cipher.DECRYPT_MODE, key);
  } catch (InvalidKeyException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  byte[] second = null;
  try {
   second = cipher.doFinal(first);
  } catch (IllegalBlockSizeException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (BadPaddingException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }

  String result = null;
  try {
   result = new String(second, "UTF8");
  } catch (UnsupportedEncodingException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  return result;
 }

 public static void main(String[] args) {
  Encrypt et = new Encrypt();
  et.setKey("my test key");
  String encode = et.encodeString("mr tian this is the test account");
  System.out.println(encode);
  String decode = et.decodeString(encode);
  System.out.println(decode);
 }

}

分享到:
评论

相关推荐

    Video Encode and Decode GPU Support Matrix.xlsx

    Video Encode and Decode GPU Support Matrix.xlsx

    HDB3 ENCODE AND DECODE

    HDB3 ENCODE AND DECODE,详细设计与实现,参考一下下啊

    DVI encode and decode source code for FPGA

    DVI 1.0 encode and decode source code, write with verilog, with simulation project, synplify project and all soure code. They're have been running on xilinx spartan3A FPGA. Can be used in real project...

    RS_encode_decode

    本项目聚焦于“RS_encode_decode”,这是一个基于FPGA(Field-Programmable Gate Array,现场可编程门阵列)的编解码模块,特别应用了喷泉码中的Raptor码,其预编码部分采用了RS码(Reed-Solomon码)。让我们深入...

    labview DTMF encode and decode

    using labview to encode DTMF tone and play through sound card and record DTMF tone from sound card and decode.

    Turbo encode and decode

    Turbo编码和解码是无线通信领域中的关键技术,特别是在LTE(Long Term Evolution)系统中,它对数据传输的高效性和可靠性起着至关重要的作用。本文将深入探讨Turbo编码的工作原理、编码过程、解码策略以及在LTE系统...

    jpeg encode and decode

    在IT领域,JPEG(Joint Photographic Experts Group)是一种广泛使用的有损图像压缩标准,它能够有效地减少图像文件的大小,适合于在网络上传输和存储。本文将深入探讨JPEG编码解码过程,以及如何使用C/C++语言实现...

    EnCode/DeCode转换工具

    EnCode/DeCode转换工具是一款专门针对这一需求设计的小巧实用软件,它能够处理ANSI和UTF-8这两种常见的字符编码格式,帮助开发者解决字符转换的问题。 首先,我们要理解编码与解码的基本概念。编码是将可读的文本...

    sbc_encode_decode.7z

    标题“sbc_encode_decode.7z”提示我们这是一个与SBC编码和解码相关的压缩文件,主要用于蓝牙A2DP协议。在IT领域,尤其是无线音频传输中,SBC(Subband Coding)是一种广泛使用的编解码标准。让我们深入探讨一下这个...

    js-protobuf-encode-decode-master.zip

    本项目"js-protobuf-encode-decode-master.zip"提供了一个在线工具,专门用于处理JavaScript环境下的Protobuf编码和解码操作。 Protobuf是一种由Google开发的数据序列化协议,它定义了一种二进制数据格式,比JSON...

    encode and decode

    "encode and decode"的主题涵盖了这个关键领域。在提供的标签中提到了"open - RSA",这指的是OpenSSL库中的RSA加密算法,这是一种广泛使用的公钥加密技术。 RSA(Rivest-Shamir-Adleman)是一种非对称加密算法,由...

    alfred-encode-decode-workflow, 将sting编码和解码为多个变体.zip

    alfred-encode-decode-workflow, 将sting编码和解码为多个变体 编码/解码( 下载 v1.8 )将字符串编码和解码为多个变体。要求Alfred应用程序 v2 。安装点击下面的下载按钮双击以导入 Alfred 2查看工作流以添加自定义...

    Encode_Decode_Tools_编码转换器

    编码转换器,如“Encode_Decode_Tools”,是解决不同字符集之间转换问题的重要工具,它使得各种格式的信息能够在全球范围内无障碍地传播。本文将深入探讨编码转换器的工作原理、常见编码类型以及其在实际应用中的...

    base64_encode_decode.exe

    base64_encode_decode

    fec编码解码-fec-encode-decode

    前向纠错编码(FEC)技术通过在传输码列中加入冗余纠错码,在一定条件下,通过解码可以自动纠正传输误码,降低接收信号的误码率(BER)。 本算法每8bit增加4bit监督位,就纠错1bit

    PDF417 encode decode

    this program is a demo to encode, decode for PDF417 bar code.

    JS的encodeURI和java的URLDecoder.decode使用介绍

    如果不想在url中看到有明文,比如http://localhost:8080/template_1/login.action?user=张三 可以使用js的encodeURI的URLDecoder.decode一起使用一起来把url加密下 (1)JS在页面上把数据var val = encodeURI...

    Encode_ Decode Tools URL编码解码工具

    `Encode_ Decode Tools`是一款用于URL编码和解码的工具,它可以帮助开发者和用户方便地处理这些编码问题。这款工具可能提供了简单的用户界面,允许用户输入URL或字符串,然后点击按钮进行编码或解码操作。它支持对...

    RSA_encodedecode.zip

    本项目提供的"RSA_encodedecode.zip"是一个C语言实现的RSA加密解密工具,包含测试代码和Makefile,方便用户直接编译运行。 在RSA算法中,主要涉及到两个关键概念:公钥和私钥。公钥是公开的,任何人都可以获取,...

Global site tag (gtag.js) - Google Analytics