java 简单的des加密示例
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加密示例的更多相关文章
- Java与.NET DES加密解密互转
上代码: Java代码: import javax.crypto.Cipher; import javax.crypto.SecretKey; import javax.crypto.SecretKe ...
- 【Java】通过DES加密和解密工具,对字符串进行加密和解密操作
分享一个非常不错的字符串加密和解密的程序. 可以指定不同的密钥对同一字符串进行不同的加密操作,增强加密性能. Java代码如下: package com.app; import java.securi ...
- PHP 识别 java 8位 des 加密和 解密方式
代码及使用说明: <?php /** *PHP 识别 java 8位密钥的加密和解密方式 *@desc 加密方式 通用 */ class DES { var $key; var $iv; //偏 ...
- java简单实现MD5加密
1.话不多说,直接上代码-----传入字符串,返回加密码 import java.security.MessageDigest; import java.text.NumberFormat; publ ...
- 关于Objective-c和Java下DES加密保持一致的方式
转载自:http://www.cnblogs.com/janken/archive/2012/04/05/2432930.html 最近做了一个移动项目,是有服务器和客户端类型的项目,客户端是要登录才 ...
- C# DES加密类,16位的加密。
这个加密类是与java写的DES加密不同时,自己写的,最后与Java的加密相同了,解决了加密后不同的问题. 可以直接调用里面的加密和解密的方法. using System; using System. ...
- JAVA实现DES加密实现详解
package util; import java.security.SecureRandom; import javax.crypto.spec.DESKeySpec; import javax.c ...
- JAVA实现DES加密
DES加密介绍 DES是一种对称加密算法,所谓对称加密算法即:加密和解密使用相同密钥的算法.DES加密算法出自IBM的研究,后来被美国政府正式采用,之后开始广泛流传,但是近些年使用越来越少 ...
- IOS、java支持DES加密
转载请注明博客地址:http://blog.csdn.net/mengxiangyue/article/details/40015727 近期在考虑数据加密方面的需求,所以对数据加密简单的看了一下,当 ...
随机推荐
- 【原创】linux signal处理中的几个问题(suse下莫名其妙死锁的处理)
我在CSDN专栏写过的,老帖子最近发现在腾讯的CVM上,服务器总是平凡的死锁后查明真像为 当你发生sig 11的异常时,会进入处理函数 signalHandler同时此时生成相应的dump file时 ...
- Struts2获取Action中的数据
当我们用Struts2框架开发时,经常有要获取jsp页面的数据或者在jsp中获取后台传过来的数据(Action),那么怎么去获取自己想要的数据呢? 后台获取前端数据: 在java程序中生成要获取字段的 ...
- GCC 显示所有的warning option
此事需求的来源是有要求调查,gcc中的那些warning是有问题的,代码必须要修改,那些事需要确认的,就要显示所有的warning选项是什么 查了下,方法如下 显示所有的warning和warning ...
- Vue Vuex state mutations
Vuex 解决不同组件的数据共享,与数据持久化 1.npm install vuex --save 2.新建store.js 并引入vue vuex ,Vue.use(Vuex) 3.state在vu ...
- angular 辅助路由
- arp欺骗进行流量截获-2
上一篇讲了原理,那么这一篇主要讲如何实现.基本上也就是实现上面的两个步骤,这里基于gopacket实现,我会带着大家一步步详细把每个步骤都讲到. ARP 欺骗 首先就是伪造ARP请求,让A和B把数据包 ...
- C++ TIM或者QQ 自动发送消息
简单写了一下 很简单的demo 闲着没事干 #include "stdafx.h" #include <thread> #include <Windows.h&g ...
- hadoop中常用的hdfs代码操作
一:向HDFS中上传任意文本文件,如果指定的文件在HDFS中已经存在,由用户指定是追加到原有文件末尾还是覆盖原有的文件: package hadoopTest; import org.apache.h ...
- Maven配置与安装
最近重装了一下系统,便重新安装与配置了maven,记录这个过程并分享出来. 注意:maven安装需要Java依赖,我这里使用的是jdk1.8. 1.安装并配置环境变量 首先在 maven 官网下载 m ...
- logback&slf4j学习笔记
1.Slf4j 1.1.Slf4j简介 SLF4J,即简单日志门面(Simple Logging Facade for Java),不是具体的日志解决方案,它只服务于各种各样的日志系统.实际上,SLF ...