[Android Pro] DES加密 version1
reference to : http://blog.csdn.net/wfung_kwok/article/details/7766029
加密和解密要用同一個key
AES:
import java.util.UUID; import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec; public class DES { private static final byte[] iv = { 1, 2, 3, 4, 5, 6, 7, 8 }; /**
*
* @param encryptString 加密内容
* @param encryptKey 加密key
* @return
* @throws Exception
*/
public static String encryptDES(String encryptString, String encryptKey)
throws Exception {
IvParameterSpec zeroIv = new IvParameterSpec(iv);
SecretKeySpec key = new SecretKeySpec(encryptKey.getBytes(), "DES");
Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, key, zeroIv);
String tmp = Base64.encodeBytes(encryptString.getBytes("UTF-8"));
byte[] encryptedData = cipher.doFinal(tmp.getBytes("UTF-8"));
return Base64.encodeBytes(encryptedData);
} /**
*
* @param decryptString 解密内容
* @param encryptKey 解密key
* @return
* @throws Exception
*/
public static String decryptDES(String decryptString,String encryptKey)throws Exception {
IvParameterSpec zeroIv = new IvParameterSpec(iv);
SecretKeySpec key = new SecretKeySpec(encryptKey.getBytes(), "DES");
Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");
cipher.init(Cipher.DECRYPT_MODE, key, zeroIv);
byte[] decryptBytes = cipher.doFinal(Base64.decode(decryptString));
String tmp = new String(decryptBytes,"UTF-8");
return new String(Base64.decode(tmp));
} public static String getKey(){
String p = UUID.randomUUID().toString();
return SHA1.Encrypt(p).substring(0, 8);
} }
Test:
public static void testDES() throws Exception{ String content = "AES加密";
String key = DES.getKey();
String a = DES.encryptDES(content, key);
System.out.println("DES Encrypt..." + a);
String b = DES.decryptDES(a, key);
System.out.println("DES decrypt..." + b);
}
Console:
DES Encrypt...93koM7boCXsNrH91Y0MDJA==
DES decrypt...AES加密
[Android Pro] DES加密 version1的更多相关文章
- Android:DES加密
private static final String KEY = "xxxxxx"; // KEY的字节长度必须超过24 public DESUtil(){ super(); } ...
- [Android Pro] AES加密
reference to :http://blog.csdn.net/wfung_kwok/article/details/7766427 package com.secufity.aes; impo ...
- Android数据加密之Des加密
前言: 端午节前有个同事咨询我有关Android DES加密的相关实现,简单的实现了一下,今天来总结一下. 其他几种加密方式: Android数据加密之Rsa加密 Android数据加密之Aes加密 ...
- Android和java平台 DES加密解密互通程序及其不能互通的原因
网上的demo一搜一大堆,但是,基本上都是一知半解(包括我).为什么呢?我在尝试分别在两个平台加密的时候,竟然发现Android DES 加密和java DES加密的程序不能互通.就是加密的结果不一样 ...
- Android DES加密的CBC模式加密解密和ECB模式加密解密
DES加密共有四种模式:电子密码本模式(ECB).加密分组链接模式(CBC).加密反馈模式(CFB)和输出反馈模式(OFB). CBC模式加密: import java.security.Key; i ...
- Android客户端与服务器端通过DES加密认证
转载地址:http://blog.csdn.net/spring21st/article/details/6730283 由于Android应用没有像web开发中的session机制,所以采用PHPS ...
- 【Android工具类】怎样保证Android与server的DES加密保持一致
转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 在我们的应用程序涉及到比較敏感的数据的时候,我们一般会对数据进行简单的加密.在与server之间的数据交互中 ...
- android -------- DES加密解密算法
DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法,1977年被美国联邦政府的国家标准局确定为联邦资料处理标准(FIPS),并授权在非密级政府通信 ...
- (iOS)Base64加密和DES加密、以及JAVA和iOS中DES加密统一性问题
我们在项目中为了安全方面的考虑,通常情况下会选择一种加密方式对需要安全性的文本进行加密,而Base64加密和DES64加密是常用的加密算法.我记得我在前一个项目中使用的就是这两种加密算法的结合:Bas ...
随机推荐
- maven 向本地私库导入jar
mvn install:install-file -DgroupId=<your_group_name> -DartifactId=<your_artifact_name> - ...
- iOS resign code with App Store profile and post to AppStore
http://stackoverflow.com/questions/17545452/ios-resign-code-with-app-store-profile-and-post-to-appst ...
- jQuery Validate 表单验证
在做网页表单时时常需要在客户端对表单填写的数据进行验证一番才能提交,我们可以通过自己编写JavasScript代码来验证,但是有时数据量过多时就会有些难度了.基于jQuery的jquery.valid ...
- jetbrick,新一代 Java 模板引擎,具有高性能和高扩展性
新一代 Java 模板引擎,具有高性能和高扩展性. <!-- Jetbrick Template Engineer --> <dependency> <groupId&g ...
- .assetbundle 和.unity3d 好处
.assetbundle 资源文件 .unity3D 场景文件 xml.json 静态存储和 还原 AssetBuddle 优点:减小压缩包.资源更新.分开安装包和数据包.AssetBuddle加密 ...
- hiberante入门
Hibernate 目前企业级应用一般均采用面向对象的开发方法,而内存中的对象数据不能永久存在,如想借用关系数据库来永久保存这些数据的话,无疑就存在一个对象-关系的映射过程.在这种情形下,诞生了许多解 ...
- Raspberry Pi 学习笔记之一
记录几个搭建服务器教程: [教程] 将树莓派变成网络打印机服务器(更新PC和手机端设置)!http://www.eeboard.com/bbs/thread-8818-1-1.html[心得] [分享 ...
- BZOJ 4236: JOIOJI
Description 给出一个字符串,只包含3个字母,询问最长的一个子串,3个字母出现次数相同. Sol map. 如果一个子串满足条件,那么它端点处的三个字母的个数两两差值都是一样的,直接存个状态 ...
- HTML页面的布局
1.纵向切分页面:CSS POSITION的默认值为:STATIC 1) <html> <head> <title>Hello</title> < ...
- zabbix3.0报错记录
一.问题描述 在zabbix_server添加变量时,出现了以下的报错,