`
zhanglfat
  • 浏览: 89806 次
  • 性别: 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数据加密之Rsa加密  •Android数据加密之Aes加密  •Android数据加密之Des加密  •Android...

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

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

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

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

    DES加密解密

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

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

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

    des加密demo

    简单的des加密方式加密、解密字符串

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

    这个可以用做与android php iOS 三个平台,des加解密,支持中文 英文,长字符串,又问题,欢迎留言

    解析Android数据加密之异或加密算法

    这几天被公司临时拉到去做Android IM即时通信协议实现,大致看了下他们定的协议,由于之前没有参与,据说因服务器性能限制,只达成非明文传递,具体原因我不太清楚,不过这里用的加密方式是采用异或加密。...

    android数据加密

    Android数据加密技术主要分为DES加密和Base64加密两种加密方式,使用Des算法加密时,要先对字节数组加密,然后转调用Des加密算法的byteArr2HexStr方法,把字节数组转换为16进制值的字符串。此处不能直接用new String...

    Android代码-android

    /** Created by liu on 2015/7/27. */ import java.security.Key; import java.security.spec....@param data 待加密字符串 @param key 加密私钥,长度不能够小于8位 @return 加密后的字节数组,一般结合Bas

    android-crypt-helper.zip

    加密数据传输一般以字符串形式,通常会用到BASE64,HEX转换工具。 一、JAVA方式 笔者搜集了上面提到的主要几种加解密方式及转换的实现,在此分享出来供大家参考,欢迎提意见,我会进一步完善~  二、JNI...

    Android数据传输中的参数加密代码示例

    Android开发中,难免会遇到需要加解密一些数据内容存到本地文件、或者通过网络传输到...这里使用的aes加密,然后再将字符串使用Base64编码,其中有增加向量,是为了提高加密破解难度,一段参数加密的方法如下: /**

    PictureEncryptor:Encrypt picture by using DES3 algorithm on Android.Android平台上一个基于DES3算法的图像加密工具

    使用您提供的字符串密钥对您指定的某些字节进行加密,因此解密速度很快。 ##用法###加密 Byte []encryptedDrawableBytes = Encryptor . encrypt(drawable); ###解密 Drawable result = Encryptor . decrypt...

    通用Android工具库Common4Android.zip

    字符串处理工具类。 SystemIntentUtil.java 系统Intent工具类,常用的系统Intent跳转函数,如:打电话、发短信等。 示例代码: - NetWork HttpDataRequest ...

    Android开发人员不得不收集的代码

    将字符串写入文件 writeFileFromString 简单获取文件编码格式 getFileCharsetSimple 获取文件行数 getFileLines 指定编码按行读取文件到List readFile2List 指定编码按行读取文件到StringBuilder中 readFile2SB byte...

    自己收集整理的一些常用的工具类

    DES DES加密解密类 DataCleanManager 本应用数据清除管理器 DatabaseExportUtils 应用数据库导出工具类 DateUtil 日期操作工具类 DbHelper 数据库帮助类 DensityUtil 屏幕信息获取数值的转换 DeviceStatusUtils 手机...

    懒惰:Android工具自己整理的常用的工具类

    流转换成字符串 串 螺纹池工具类 TimeUtils 吐司面包 用来计算显示的时间是多久之前 前方动画工具箱,提供简单的控制视图的动画的工具方法 视图控制 无线上网 窗口工具箱 实现的Zip工具 设置徽章 LogUti工具类 ...

    JAVA上百实例源码以及开源项目

     设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节  通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到...

Global site tag (gtag.js) - Google Analytics