`
zhanglfat
  • 浏览: 91407 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android实现DES对字符串加密

 
阅读更多



  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);

  }

  }
分享到:
评论
1 楼 longlilin987 2014-11-28  
是乱码啊,我的怎么不可以

相关推荐

    android的des加密

    标题中的"android的des加密"指的是在Android应用开发中实现DES加密的过程。由于DES是面向块的加密算法,它将明文分为64位的数据块进行操作,但实际有效密钥长度只有56位,因为其中的8位用于奇偶校验。在Android中,...

    Android数据加密之Des加密

    有个同事咨询我有关Android DES加密的相关实现,简单的实现了一下,今天来总结一下。  其他几种加密方式:  •Android数据加密之Rsa加密  •Android数据加密之Aes加密  •Android数据加密之Des加密  •Android...

    又一个字符串加密解密实例,Delphi代码下载..rar

    本文将深入探讨Delphi编程环境中实现字符串加密解密的方法,同时结合提供的资源——"又一个字符串加密解密实例,Delphi代码下载",来解析其中的关键知识点。 Delphi是一种基于Object Pascal的集成开发环境(IDE),...

    Android与其他系统间DES加密解密的处理经验

    C#系统采用DES加密字符串,Android用DES解密就是不成功,从网上搜了许多源码都不能用,深入研究加密流程及算法是没有时间的。 网上搜的源码大都使用系统默认的加密模式,当我们对这些参数不了解时,就会浪费许多时间...

    DES加密算法(C语言实现)

    利用C语言编写的DES加密算法,能够对任意长度的字符数组进行加解密。通过编写相应的JNI接口文件能够很容易移植到Android平台,从而解决不同平台DES加解密结果不一致的问题。

    ios-DES加密,可用于加密中文,字符,请求数据的json串.zip

    4. **JSON字符串加密**:JSON数据通常包含键值对,用于传输结构化数据。在发送JSON数据之前,需要先将其序列化成字符串,然后加密。接收端则先解密,再反序列化回JSON对象。 5. **密钥管理**:DES的密钥管理至关...

    Android 加密压缩解密解压缩字符串简单DEMO

    1. **字符串加密**: 在Android中,常见的加密算法有AES(高级加密标准)、DES(数据加密标准)和RSA(公钥加密技术)。这个DEMO可能使用了AES,因为它快速且适用于大量数据。AES加密通过设置一个密钥,将明文字符...

    android DES 加密

    这个示例可能包括创建密钥、加密和解密字符串的函数,以及如何在Android环境中运行这些函数的代码。通过阅读和理解这个示例,开发者可以快速掌握Android平台上的DES加密解密操作。 然而,值得注意的是,DES由于其...

    android端写的DES加密解密代码对应C#写的加密解密代码。两者加密解密结果完全一致

    5. **数据格式化**:加密后的数据通常需要转换为字符串进行传输,例如Base64编码。确保两端使用相同的编码方式。 通过遵循以上原则,并在实际应用中进行测试,可以确保Android和C#的DES加密解密结果完全一致。在...

    DES加密解密

    这是一个完整的demo,实现了3DES加密解密,16进制数组和字符串之间的相互转换,可以直接运行,测试

    android iOS php des 互通加密解密算法

    本篇将详细讲解如何在`Android`、`iOS`和`PHP`中实现`DES`加密解密,并探讨其在中文和长字符串处理中的应用。 首先,让我们了解`DES`的基本原理。`DES`是一种分组密码,它将明文分成64位的数据块,然后使用56位的...

    flutter_des:Java,Android,iOS通过DES加密和解密获得相同的结果

    Java,android,ios通过DES加密和解密获得相同的结果。 DES算法:CBC操作:(android)PKCS5Padding(ios)kCCOptionPKCS7Padding 入门 添加依赖 dependencies : flutter_des : ^2.0.0 # latest version 例子 ...

    android ios java后台通用DES base64加密

    在Android、iOS和Java平台中,实现DES和Base64加密有多种库和API可供开发者使用。例如,在Java中,可以使用`java.security.Key`和`javax.crypto.Cipher`来处理DES加密,而`java.util.Base64`类则提供了Base64编码和...

    des加密demo

    DES(Data Encryption Standard)是一种对称加密算法,广泛应用于数据安全领域。在本文中,我们将深入探讨DES加密机制,...在DESEncryptionDemo中,我们将学习如何利用这些库,实现一个简单的字符串加密和解密程序。

    ios_des加密.zip_iOS的des加密_ios_ios_des_安卓加密

    开发者需要提供一个密钥,然后调用这些方法将字符串加密或解密为其他字符串。 **Android中的DES加密** 在Android平台上,同样可以使用Java的JCE(Java Cryptography Extension)库来实现DES加密。JCE提供了`javax....

    DeStroid:对抗Android恶意软件中的字符串加密

    其中,“DeStroid”是一个专门针对Android恶意软件中字符串加密策略的研究项目,旨在提高对恶意软件检测和分析的效率与准确性。 Android恶意软件为了逃避检测,往往采用字符串加密的方法,隐藏其恶意行为。这种加密...

    Android数据加密之Des加密详解

    在Android环境中,实现DES加密通常涉及到以下几个关键部分: 1. **密钥生成**:由于DES要求密钥为8字节,因此可以使用`SecureRandom`类生成随机字节数组,然后转换成字符串形式存储。例如,`generateKey()`方法通过...

    android JNI RSA 3DES BASE64 加解密实现

    在加密后,数据通常会被转化为BASE64字符串以便在网络中安全传输。 在Android中,JNI允许Java代码调用C/C++原生代码,从而实现更高效的计算任务,比如加密解密。使用JNI实现这些加密算法的步骤如下: 1. **创建JNI...

    JS端与java(android)端3DES加密解密和Base64编码解码文件

    本文将深入探讨如何在JavaScript(JS)客户端和Java(Android)端实现3DES加密解密以及Base64编码解码,这对于保护用户敏感信息和实现安全通信至关重要。 首先,3DES(Triple Data Encryption Standard)是一种加强...

    IOS下DES加解密,并Base64编码 ,和Android端统一

    本主题主要关注的是在iOS平台上使用DES(Data Encryption Standard)加密算法以及Base64编码进行数据处理,以实现与Android端的兼容。 DES是一种对称加密算法,它使用一个56位的密钥对数据进行加密和解密。在iOS中...

Global site tag (gtag.js) - Google Analytics