(转)Java DES 与Base64
原文地址http://blog.csdn.net/tomatozq/article/details/20773559
1,DES
/**
* 解密
* @param message
* @param key
* @return
* @throws Exception
*/
public static String decrypt(String message,String encoding) throws Exception { byte[] bytesrc = convertHexString(message);
Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");
DESKeySpec desKeySpec = new DESKeySpec(key.getBytes(encoding));
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
SecretKey secretKey = keyFactory.generateSecret(desKeySpec);
IvParameterSpec iv = new IvParameterSpec(key.getBytes(encoding)); cipher.init(Cipher.DECRYPT_MODE, secretKey, iv); byte[] retByte = cipher.doFinal(bytesrc);
return new String(retByte,encoding);
} /**
* 加密
* @param message
* @param key
* @return
* @throws Exception
*/
public static String encrypt(String message,String encoding) throws Exception {
Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding"); DESKeySpec desKeySpec = new DESKeySpec(key.getBytes(encoding)); SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
SecretKey secretKey = keyFactory.generateSecret(desKeySpec);
IvParameterSpec iv = new IvParameterSpec(key.getBytes(encoding));
cipher.init(Cipher.ENCRYPT_MODE, secretKey, iv); byte[] buf = cipher.doFinal(message.getBytes(encoding)); String a = toHexString(buf).toUpperCase(); return a;
} /**
* 字符串转换为16进制数组
* @param ss
* @return
*/
public static byte[] convertHexString(String ss) {
byte digest[] = new byte[ss.length() / 2];
for (int i = 0; i < digest.length; i++) {
String byteString = ss.substring(2 * i, 2 * i + 2);
int byteValue = Integer.parseInt(byteString, 16);
digest[i] = (byte) byteValue;
} return digest;
} /**
* 16进制数组转换为字符串
* @param b
* @return
*/
public static String toHexString(byte b[]) {
StringBuffer hexString = new StringBuffer();
for (int i = 0; i < b.length; i++) {
String plainText = Integer.toHexString(0xff & b[i]);
if (plainText.length() < 2)
plainText = "0" + plainText;
hexString.append(plainText);
} return hexString.toString();
}
2,Base64
byte[] enc = Base64.encode(encText.getBytes(encoding), Base64.DEFAULT);
byte[] bytesrc = Base64.decode(encText.getBytes(encoding), Base64.DEFAULT);
(转)Java DES 与Base64的更多相关文章
- Java DES 测试
package com.des.test; import java.io.UnsupportedEncodingException; import java.security.InvalidKeyEx ...
- C#加密解密(DES,AES,Base64,md5,SHA256,RSA,RC4)
一:异或^简单加解密(数字类型) 1:原理: 异或用于比较两个二进制数的相应位,在执行按位"异或"运算时,如果两个二进制数的相应位都为1或者都为0,则返回0;如果两个二进制数的相应 ...
- java自带BASE64工具进行图片和字符串转换
java自带BASE64工具进行图片和字符串转换 import java.io.File; import java.io.FileInputStream; import java.io.FileOut ...
- 使用C# DES解密java DES加密的字符串
转自 microAllen 最近需要使用C#的DES解密工具类解密字符串,但是要解密的字符串是使用java进行DES加密的,去网上查了关于C#和java关于DES加密解密的资料,发现可以相互加密解 ...
- 【项目分析】利用C#改写JAVA中的Base64.DecodeBase64以及Inflater解码
原文:[项目分析]利用C#改写JAVA中的Base64.DecodeBase64以及Inflater解码 最近正在进行项目服务的移植工作,即将JAVA服务的程序移植到DotNet平台中. 在JAVA程 ...
- Java Des加解密方法(c#加密Java解密)
最近我们用Java把一个用.net编写的老系统重新做了翻版,但是登录还是用.net的登录.这样就会遇到一个比较棘手的问题,我们登录用的cookie信息都是.net用des加密的,但我们不得不用Java ...
- java 图片转base64字符串、base64字符串转图片
java 图片转base64字符串.base64字符串转图片 1. 图片转base64字符串: /** * base64编码字符串转换为图片 * @param imgStr base64编码字符串 * ...
- java自带BASE64工具进行图片和字符串转换【转】
java自带BASE64工具进行图片和字符串转换 import java.io.File; import java.io.FileInputStream; import java.io.FileOut ...
- Java如何进行Base64的编码(Encode)与解码(Decode)?
https://blog.csdn.net/zhou_kapenter/article/details/62890262 *************************************** ...
随机推荐
- MyEclipse配置Resin启动报错问题
错误信息如下: com.caucho.config.ConfigException: -server 'default' is an unknown server in the configurati ...
- java指针
import java.util.ArrayList; import java.util.List; public class TestPoint { public static void main( ...
- php编译安装参数说明
http://www.cnblogs.com/52php/p/5668828.html
- Oracle RAC环境的日志体系
转摘:http://blog.itpub.net/22664653/viewspace-722463/ 在Oracle RAC环境中比单个系统的日志体系要复杂:见下图: 简单介绍一下有关Oracle集 ...
- adb failed to start daemon 的解决办法
很多人遇到下面这个问题 * daemon not running. starting it now on port 5037 * ADB server didn't ACK<br>* fa ...
- 怎么利用WinPE恢复系统注册表?
我们的电脑总是会遇到各种各样的问题,最好用的方式就是电脑重装,重装系统的方式有很多,光盘安装.硬盘安装.U盘安装等.但是碰到电脑系统瘫痪无法启动,甚至连安全模式也进不了的时候,你的光盘.硬盘就没有用处 ...
- [转]使用 Minidumps 和 Visual Studio .NET 进行崩溃后调试
本文关键字:Minidumps, Windows, SEH, VisualC, .NET 摘要 本文讲述了 minidumps 是怎样工作的.当你的程序崩溃的时候应该如何生成它们.以及如何在 Visu ...
- LintCode "Copy Books"
Classic DP. The initial intuitive O(k*n^2) solution is like this: class Solution { public: /** * @pa ...
- 【转】SQL SERVER 存储过程中变量的作用域
今天遇到一个很有趣的事情,以前没有注意过,所以记下来. 先来看例子. SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE ...
- 单元测试(junit使用)
1.测试的对象是一个类中的方法. 2.导入jar包. 3.单元测试方法时候,测试方法命名规则为 public void 方法名(){},注意:测试类不能命名为public class Test{},T ...