import java.io.UnsupportedEncodingException;
import java.security.SecureRandom;
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;
public class test
{
public static void main(String[] args)
throws UnsupportedEncodingException
{
//待加密内容
String str = “我是中国人”;
//密码,长度要是8的倍数
String password = “alnton08″;
byte[] result = desCrypto(str.getBytes(), password);
System.out.println(“加密后内容为:” + new String(result));
//直接将如上内容解密
try
{
byte[] decryResult = decrypt(result, password);
System.out.println(“加密前内容为:” + new String(decryResult));
}
catch (Exception e1)
{
e1.printStackTrace();
}
}
/**
* <对字符串进行Des加密,将字符串转化为字节数组解密>
*/
public static byte[] desCrypto(byte[] datasource, String password)
{
try
{
SecureRandom random = new SecureRandom();
DESKeySpec desKey = new DESKeySpec(password.getBytes());
//创建一个密匙工厂,然后用它把DESKeySpec转换成
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(“DES”);
SecretKey securekey = keyFactory.generateSecret(desKey);
//Cipher对象实际完成加密操作
Cipher cipher = Cipher.getInstance(“DES”);
//用密匙初始化Cipher对象
cipher.init(Cipher.ENCRYPT_MODE, securekey, random);
//现在,获取数据并加密
//正式执行加密操作
return cipher.doFinal(datasource);
}
catch (Throwable e)
{
e.printStackTrace();
}
return null;
}
/**
* <将加密的密文字节数组转化为明文字节数组>
*/
public static byte[] decrypt(byte[] src, String password)
throws Exception
{
// DES算法要求有一个可信任的随机数源
SecureRandom random = new SecureRandom();
// 创建一个DESKeySpec对象
DESKeySpec desKey = new DESKeySpec(password.getBytes());
// 创建一个密匙工厂
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(“DES”);
// 将DESKeySpec对象转换成SecretKey对象
SecretKey securekey = keyFactory.generateSecret(desKey);
// Cipher对象实际完成解密操作
Cipher cipher = Cipher.getInstance(“DES”);
// 用密匙初始化Cipher对象
cipher.init(Cipher.DECRYPT_MODE, securekey, random);
// 真正开始解密操作
return cipher.doFinal(src);
}
}
发表评论
-
ActivityGroup 替代tabActivity
2013-12-26 16:43 2544转载自http://www.cnblogs.com/answe ... -
Android实战技巧:为从右向左语言定义复杂字串
2013-09-04 17:37 1146我们所使用的语言,无论是中文还是英语, ... -
Android 5种方式存储数据:
2013-05-08 17:17 1104Android 提供了5种方式存储数据: --使用Shared ... -
widget的设计与应用
2013-02-02 16:27 9321.AppWidgetProviderInfo对象 ... -
Android系统主题设计和实现
2012-12-11 14:09 1497转自:http://www.apkbus.com/ ... -
android综合
2012-08-02 16:25 15941 ,手动设置横竖屏 TestA ... -
onSaveInstanceState
2012-08-01 17:40 729@Override //存储 public void onSa ... -
处理多个Activity
2012-07-20 09:40 712public class LifecycleManager ... -
bitmap 和drawable 互相转换
2012-07-19 13:37 652// bitmap to drawable; Drawable ... -
设置壁纸的三种方法
2012-07-19 11:46 25331111111111111111111111111111111 ... -
sqlite数据库处理时间问题 和 日期时间函数
2012-06-27 10:36 22845首先,sqlite数据库在时间 ... -
app缓存管理
2012-06-27 10:25 1058无论大型或小型应用, ... -
Uri、UriMatcher、ContentUris类使用介绍&&Android应用间数据共享之ContentProvider
2012-05-24 15:50 4431Android应用开发中我们会经常用Uri进行数据的处理,下面 ... -
getWidth()为0
2012-04-12 10:06 2015一般在刚开始开发android时,会犯一个错误,即在View的 ... -
自定义View 及使用
2012-04-05 14:08 773可能是一直都在做Web的富客户端开发的缘故吧,在接触Andro ... -
搜索手机联系人所有字段
2012-03-28 15:54 1452想取手机联系人的有效字段,但是苦于找不到API表示的字段变量, ... -
Andoid2.X各字段意义
2012-03-28 14:59 1258ContactsContract.Contacts.TIMES ... -
SMS发送流程
2012-03-20 18:07 1262发短信流程: 1 afterTextChanged{mWork ... -
Android telephony MMS 学习笔记
2012-03-14 13:32 2885转载 http://blog.csdn.net/tjy1985 ... -
Android_Mms源代码接受短信流程
2012-03-14 13:27 978短信来了之后framework会发送广播 “android.p ...
相关推荐
标题中的"android的des加密"指的是在Android应用开发中实现DES加密的过程。由于DES是面向块的加密算法,它将明文分为64位的数据块进行操作,但实际有效密钥长度只有56位,因为其中的8位用于奇偶校验。在Android中,...
有个同事咨询我有关Android DES加密的相关实现,简单的实现了一下,今天来总结一下。 其他几种加密方式: •Android数据加密之Rsa加密 •Android数据加密之Aes加密 •Android数据加密之Des加密 •Android...
本文将深入探讨Delphi编程环境中实现字符串加密解密的方法,同时结合提供的资源——"又一个字符串加密解密实例,Delphi代码下载",来解析其中的关键知识点。 Delphi是一种基于Object Pascal的集成开发环境(IDE),...
C#系统采用DES加密字符串,Android用DES解密就是不成功,从网上搜了许多源码都不能用,深入研究加密流程及算法是没有时间的。 网上搜的源码大都使用系统默认的加密模式,当我们对这些参数不了解时,就会浪费许多时间...
利用C语言编写的DES加密算法,能够对任意长度的字符数组进行加解密。通过编写相应的JNI接口文件能够很容易移植到Android平台,从而解决不同平台DES加解密结果不一致的问题。
4. **JSON字符串加密**:JSON数据通常包含键值对,用于传输结构化数据。在发送JSON数据之前,需要先将其序列化成字符串,然后加密。接收端则先解密,再反序列化回JSON对象。 5. **密钥管理**:DES的密钥管理至关...
1. **字符串加密**: 在Android中,常见的加密算法有AES(高级加密标准)、DES(数据加密标准)和RSA(公钥加密技术)。这个DEMO可能使用了AES,因为它快速且适用于大量数据。AES加密通过设置一个密钥,将明文字符...
这个示例可能包括创建密钥、加密和解密字符串的函数,以及如何在Android环境中运行这些函数的代码。通过阅读和理解这个示例,开发者可以快速掌握Android平台上的DES加密解密操作。 然而,值得注意的是,DES由于其...
5. **数据格式化**:加密后的数据通常需要转换为字符串进行传输,例如Base64编码。确保两端使用相同的编码方式。 通过遵循以上原则,并在实际应用中进行测试,可以确保Android和C#的DES加密解密结果完全一致。在...
这是一个完整的demo,实现了3DES加密解密,16进制数组和字符串之间的相互转换,可以直接运行,测试
本篇将详细讲解如何在`Android`、`iOS`和`PHP`中实现`DES`加密解密,并探讨其在中文和长字符串处理中的应用。 首先,让我们了解`DES`的基本原理。`DES`是一种分组密码,它将明文分成64位的数据块,然后使用56位的...
Java,android,ios通过DES加密和解密获得相同的结果。 DES算法:CBC操作:(android)PKCS5Padding(ios)kCCOptionPKCS7Padding 入门 添加依赖 dependencies : flutter_des : ^2.0.0 # latest version 例子 ...
在Android、iOS和Java平台中,实现DES和Base64加密有多种库和API可供开发者使用。例如,在Java中,可以使用`java.security.Key`和`javax.crypto.Cipher`来处理DES加密,而`java.util.Base64`类则提供了Base64编码和...
DES(Data Encryption Standard)是一种对称加密算法,广泛应用于数据安全领域。在本文中,我们将深入探讨DES加密机制,...在DESEncryptionDemo中,我们将学习如何利用这些库,实现一个简单的字符串加密和解密程序。
开发者需要提供一个密钥,然后调用这些方法将字符串加密或解密为其他字符串。 **Android中的DES加密** 在Android平台上,同样可以使用Java的JCE(Java Cryptography Extension)库来实现DES加密。JCE提供了`javax....
其中,“DeStroid”是一个专门针对Android恶意软件中字符串加密策略的研究项目,旨在提高对恶意软件检测和分析的效率与准确性。 Android恶意软件为了逃避检测,往往采用字符串加密的方法,隐藏其恶意行为。这种加密...
在Android环境中,实现DES加密通常涉及到以下几个关键部分: 1. **密钥生成**:由于DES要求密钥为8字节,因此可以使用`SecureRandom`类生成随机字节数组,然后转换成字符串形式存储。例如,`generateKey()`方法通过...
本文将深入探讨如何在JavaScript(JS)客户端和Java(Android)端实现3DES加密解密以及Base64编码解码,这对于保护用户敏感信息和实现安全通信至关重要。 首先,3DES(Triple Data Encryption Standard)是一种加强...
在加密后,数据通常会被转化为BASE64字符串以便在网络中安全传输。 在Android中,JNI允许Java代码调用C/C++原生代码,从而实现更高效的计算任务,比如加密解密。使用JNI实现这些加密算法的步骤如下: 1. **创建JNI...
在Java中,实现DES加密通常需要使用`javax.crypto`包中的类,但在这个场景中,我们关注的是与Base64编码相关的部分,因为Base64是用于在网络上传输含有二进制数据的文本格式。在Java 8及更高版本中,`java.util.Base...