1.加密结果

  包含 : 对int加密 、对string加密、对byte[]加密。

 10-09 18:33:32.484 7617-7617/com.example.tt.downtest D/CipherUtil: init Cipher needs 18 ms
 10-09 18:33:32.484 7617-7617/com.example.tt.downtest D/CipherUtil: -----=====-----------=========-----
 10-09 18:33:32.484 7617-7617/com.example.tt.downtest D/CipherUtil: bytes data is  [ ��
                                                                     ]
 10-09 18:33:32.490 7617-7617/com.example.tt.downtest D/CipherUtil: encrypt ret is [ ����h�1 !m�7M��J�˝��� ] needs 5 ms
 10-09 18:33:32.490 7617-7617/com.example.tt.downtest D/CipherUtil: decrypt ret is [ ��
                                                                     ] needs 0 ms
 10-09 18:33:32.490 7617-7617/com.example.tt.downtest D/CipherUtil: -----=====-----------=========-----
 10-09 18:33:32.490 7617-7617/com.example.tt.downtest D/CipherUtil: int data is  [ 100 ]
 10-09 18:33:32.490 7617-7617/com.example.tt.downtest D/CipherUtil: encrypt ret is [ [��sZ"� ] needs 0 ms
 10-09 18:33:32.490 7617-7617/com.example.tt.downtest D/CipherUtil: decrypt ret is [ 100 ] needs 0 ms
 10-09 18:33:32.490 7617-7617/com.example.tt.downtest D/CipherUtil: -----=====-----------=========-----
 10-09 18:33:32.491 7617-7617/com.example.tt.downtest D/CipherUtil: string data is [ hello world ]
 10-09 18:33:32.491 7617-7617/com.example.tt.downtest D/CipherUtil: encrypt ret is [ ��́��|��@�y��y ] needs 0 ms
 10-09 18:33:32.491 7617-7617/com.example.tt.downtest D/CipherUtil: decrypt ret is [ hello world ] needs 0 ms

2.完整示例

 package com.example.tt.downtest;

 import android.util.Log;

 import java.security.InvalidKeyException;
 import java.security.NoSuchAlgorithmException;
 import java.security.spec.InvalidKeySpecException;

 import javax.crypto.BadPaddingException;
 import javax.crypto.Cipher;
 import javax.crypto.IllegalBlockSizeException;
 import javax.crypto.NoSuchPaddingException;
 import javax.crypto.SecretKey;
 import javax.crypto.SecretKeyFactory;
 import javax.crypto.spec.DESKeySpec;

 public class CipherUtil {

     final String TAG = "CipherUtil";
     long begin,end;

     String algorithm = "DES";
     Cipher cipher;
     SecretKey secretKey;
     ,};

     void init(){
         begin = System.currentTimeMillis();
         try {
             cipher = Cipher.getInstance(algorithm);
             DESKeySpec keySpec = new DESKeySpec(key);
             SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(algorithm);
             secretKey = keyFactory.generateSecret(keySpec);
         } catch (NoSuchAlgorithmException e) {
             e.printStackTrace();
         } catch (NoSuchPaddingException e) {
             e.printStackTrace();
         } catch (InvalidKeyException e) {
             e.printStackTrace();
         } catch (InvalidKeySpecException e) {
             e.printStackTrace();
         }
         end = System.currentTimeMillis();
         Log.d(TAG, "init Cipher needs " + (end - begin) + " ms");
     }

     byte[] des(int mode,byte data[]){

         byte[] ret = null;
         //加密的内容存在并且密钥存在且长度为8个字节
         ) {
             try {
                 //Cipher.DECRYPT_MODE 解密
                 //Cipher.ENCRYPT_MODE 加密
                 cipher.init(mode, secretKey);
                 ret = cipher.doFinal(data);

             } catch (IllegalBlockSizeException e) {
                 e.printStackTrace();
             } catch (BadPaddingException e) {
                 e.printStackTrace();
             } catch (InvalidKeyException e) {
                 e.printStackTrace();
             }
         }
         return ret;
     }

     //DES 解密
     public byte[] desDecrypt(byte data[]){
         return des(Cipher.DECRYPT_MODE,data);
     }
     //DES 加密
     public byte[] desEncrypt(byte data[]){
         return des(Cipher.ENCRYPT_MODE,data);
     }

     //byte 数组与 int 的相互转换
     public static int byteArrayToInt(byte[] b) {
         ] & 0xFF        |
                 (b[] &   |
                 (b[] &  |
                 (b[] &  ;
     }

     public static byte[] intToByteArray(int a) {
         return new byte[] {
                 ()   & 0xFF),
                 ()   & 0xFF),
                 ()    & 0xFF),
                 (byte) (a           & 0xFF)
         };
     }

     public CipherUtil(){
         init();
     }

     void testEncryptBytes(){
         ];
         ;i < data.length;++i){
             data[i] = (byte) i;
         }
         Log.d(TAG, "bytes data is  [ " + new String(data) + " ]");

         begin = System.currentTimeMillis();
         byte encrypt[] = desEncrypt(data);
         end = System.currentTimeMillis();
         Log.d(TAG, "encrypt ret is [ " + new String(encrypt) + " ] needs " + (end - begin) + " ms");

         begin = System.currentTimeMillis();
         byte decrypt[] = desDecrypt(encrypt);
         end = System.currentTimeMillis();

         Log.d(TAG, "decrypt ret is [ " + new String(decrypt) + " ] needs " + (end - begin) + " ms");

     }
     void testEncryptInt(){
         ;
         byte bytes[] = intToByteArray(data);
         Log.d(TAG, "int data is  [ " + data + " ]");

         begin = System.currentTimeMillis();
         byte encrypt[] = desEncrypt(bytes);
         end = System.currentTimeMillis();
         Log.d(TAG, "encrypt ret is [ " + new String(encrypt) + " ] needs " + (end - begin) + " ms");

         begin = System.currentTimeMillis();
         byte decrypt[] = desDecrypt(encrypt);
         end = System.currentTimeMillis();

         Log.d(TAG, "decrypt ret is [ " + byteArrayToInt(decrypt) + " ] needs " + (end - begin) + " ms");

     }
     void testEncryptString(){
         String str = "hello world";
         byte data[] = str.getBytes();
         Log.d(TAG, "string data is [ " + str + " ]");

         begin = System.currentTimeMillis();
         byte encrypt[] = desEncrypt(data);
         end = System.currentTimeMillis();
         Log.d(TAG, "encrypt ret is [ " + new String(encrypt) + " ] needs " + (end - begin) + " ms");

         begin = System.currentTimeMillis();
         byte decrypt[] = desDecrypt(encrypt);
         end = System.currentTimeMillis();

         Log.d(TAG, "decrypt ret is [ " + new String(decrypt) + " ] needs " + (end - begin) + " ms");

     }

     public void testMain(){

         Log.d(TAG, "-----=====-----------=========-----");
         testEncryptBytes();
         Log.d(TAG, "-----=====-----------=========-----");
         testEncryptInt();
         Log.d(TAG, "-----=====-----------=========-----");
         testEncryptString();
     }
 }

java 简单的des加密示例的更多相关文章

  1. Java与.NET DES加密解密互转

    上代码: Java代码: import javax.crypto.Cipher; import javax.crypto.SecretKey; import javax.crypto.SecretKe ...

  2. 【Java】通过DES加密和解密工具,对字符串进行加密和解密操作

    分享一个非常不错的字符串加密和解密的程序. 可以指定不同的密钥对同一字符串进行不同的加密操作,增强加密性能. Java代码如下: package com.app; import java.securi ...

  3. PHP 识别 java 8位 des 加密和 解密方式

    代码及使用说明: <?php /** *PHP 识别 java 8位密钥的加密和解密方式 *@desc 加密方式 通用 */ class DES { var $key; var $iv; //偏 ...

  4. java简单实现MD5加密

    1.话不多说,直接上代码-----传入字符串,返回加密码 import java.security.MessageDigest; import java.text.NumberFormat; publ ...

  5. 关于Objective-c和Java下DES加密保持一致的方式

    转载自:http://www.cnblogs.com/janken/archive/2012/04/05/2432930.html 最近做了一个移动项目,是有服务器和客户端类型的项目,客户端是要登录才 ...

  6. C# DES加密类,16位的加密。

    这个加密类是与java写的DES加密不同时,自己写的,最后与Java的加密相同了,解决了加密后不同的问题. 可以直接调用里面的加密和解密的方法. using System; using System. ...

  7. JAVA实现DES加密实现详解

    package util; import java.security.SecureRandom; import javax.crypto.spec.DESKeySpec; import javax.c ...

  8. JAVA实现DES加密

    DES加密介绍       DES是一种对称加密算法,所谓对称加密算法即:加密和解密使用相同密钥的算法.DES加密算法出自IBM的研究,后来被美国政府正式采用,之后开始广泛流传,但是近些年使用越来越少 ...

  9. IOS、java支持DES加密

    转载请注明博客地址:http://blog.csdn.net/mengxiangyue/article/details/40015727 近期在考虑数据加密方面的需求,所以对数据加密简单的看了一下,当 ...

随机推荐

  1. Oracle——SQL基础

    一.SQL语句分为以下三种类型: DML: Data Manipulation Language 数据操纵语言DDL: Data Definition Language 数据定义语言DCL: Data ...

  2. 合成(Composite)模式

    一. 合成(Composite)模式 合成模式有时又叫做部分-整体模式(Part-Whole).合成模式将对象组织到树结构中,可以用来描述整体与部分的关系. 合成模式可以使客户端将单纯元素与复合元素同 ...

  3. arcgis for android常见问题回答

    Q:arcgis for android最新版本是多少?(2014-7-18) Arcgis for android 10.2.3 sdk 百度盘下载地址:http://pan.baidu.com/s ...

  4. 【EfF】 贪婪加载和延迟加载 (virtual去掉关闭延迟加载)

    EntityFramework(EF)贪婪加载和延迟加载的选择和使用 贪婪加载:顾名思议就是把所有要加载的东西一 次性读取 1 using (var context = new MyDbContext ...

  5. JavaScript中事件冒泡之实例理解

    此#btnComfirmChooseCompany是Bootstrap模态弹层上的按钮,但点击后,点击事件被Bootstrap外层监听到了, 效果就是模态弹出层被关闭了,所以,我不想这个点击事件被&q ...

  6. I-team 博客全文检索 Elasticsearch 实战

    一直觉得博客缺点东西,最近还是发现了,当博客慢慢多起来的时候想要找一篇之前写的博客很是麻烦,于是作为后端开发的楼主觉得自己动手丰衣足食,也就有了这次博客全文检索功能Elasticsearch实战,这里 ...

  7. sqlServer DataReader与DataSet的区别

    sqlServer   DataReader与DataSet的区别 从以下这几个方面比较: 1.与数据库连接: DataReader:面向连接,只读,只进,只能向前读,读完数据就断开连接: DataS ...

  8. SKU:唯一标识填什么

    策略 随意填写 只要别和别人重复就好 ,不过重复你也创建不了. 最好填与APP信息相关的,比如直接填写bundle ID 上去...跟套装ID保持一致. 你新建应用的时候都还没有APP ID 你怎么填 ...

  9. 「模拟赛20190327」 第二题 DP+决策单调性优化

    题目描述 小火车虽然很穷,但是他还是得送礼物给妹子,所以他前往了二次元寻找不需要钱的礼物. 小火车准备玩玩二次元的游戏,游戏当然是在一个二维网格中展开的,网格大小是\(n\times m\)的,某些格 ...

  10. C#中调用SAPI实现语音识别的2种方法

    通过微软的SAPI,不仅仅可以实现语音合成TTS,同样可以实现语音识别SR.下面我们就介绍并贴出相关代码.主要有两种方式: 1.使用COM组件技术,不管是C++,C#,Delphi都能玩的转,开发出来 ...