资源简介
des算法加密任意文件,实现对文件的加解密,使用java代码实现的
代码片段和文件信息
package des;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.MappedByteBuffer;
import java.nio.channels.FileChannel;
import java.nio.channels.FileChannel.MapMode;
/**
* 作者:李鹏程 on 2017年5月5日 上午10:30:04
作用:Des算法
*/
public class Des {
static byte[] bytekey;
private Des(String strKey) {
this.bytekey = strKey.getBytes();
}
private static Des instance;
private static byte[][] storecry;
//单利模式
public static synchronized Des getInstance(String strKey){
if (instance==null) {
instance=new Des(strKey);
}
return instance;
}
private static final boolean USE_ECB_MODEL = true;
// 初始置换IP 64位
private static final int[] INIT_REP_IP = { 58 50 42 34 26 18 10 2 60 52
44 36 28 20 12 4 62 54 46 38 30 22 14 6 64 56 48
40 32 24 16 8 57 49 41 33 25 17 9 1 59 51 43 35
27 19 11 3 61 53 45 37 29 21 13 5 63 55 47 39 31
23 15 7 };
// 初始逆置换IP 64位
private static final int[] INIT_INVER_REP_IP = { 40 8 48 16 56 24 64 32 39 7
47 15 55 23 63 31 38 6 46 14 54 22 62 30 37 5 45
13 53 21 61 29 36 4 44 12 52 20 60 28 35 3 43 11
51 19 59 27 34 2 42 10 50 18 58 26 33 1 41 9 49
17 57 25 };
// 置换选择1,56位
private static final int[] PC_1 = { 57 49 41 33 25 17 9 1 58 50
42 34 26 18 10 2 59 51 43 35 27 19 11 3 60 52 44
36 63 55 47 39 31 23 15 7 62 54 46 38 30 22 14 6
61 53 45 37 29 21 13 5 28 20 12 4 };
// 置换选择2即压缩置换 48位
private static final int[] PC_2 = { 14 17 11 24 1 5 3 28 15 6 21
10 23 19 12 4 26 8 16 7 27 20 13 2 41 52 31 37 47
55 30 40 51 45 33 48 44 49 39 56 34 53 46 42 50 36
29 32 };
// 扩展置换E 48位
private static final int[] Ext_Per_E = { 32 1 2 3 4 5 4 5 6 7 8 9 8 9
10 11 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20
21 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1 };
// P盒 32位
private static final int[] P = { 16 7 20 21 29 12 28 17 1 15 23
26 5 18 31 10 2 8 24 14 32 27 3 9 19 13 30 6 22
11 4 25 };
// S_Box
private static final int[][][] S_Box = {//S-盒
{// S_Box[1]
{ 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7 }
{ 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8 }
{ 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0 }
{ 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13 } }
{ // S_Box[2]
{ 15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10 }
{ 3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5 }
{ 0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15 }
{ 13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9 } }
{ // S_Box[3]
{ 10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8 }
{
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 446 2018-06-21 20:12 DES_LPC\DES_LPC.iml
文件 20138 2018-06-21 20:16 DES_LPC\src\com\lidapeng\des\Des.java
文件 243028 2018-06-21 20:12 DES_LPC\src\com\lidapeng\swing\logo.png
文件 12142 2018-06-21 20:18 DES_LPC\src\com\lidapeng\swing\Myfr
文件 186 2018-06-21 20:18 DES_LPC\src\com\lidapeng\the_final\The_Final.java
文件 189 2018-06-21 20:12 DES_LPC\src\note.txt
文件 413 2018-06-21 20:12 DES_LPC\src\test\Test.java
目录 0 2018-06-21 20:16 DES_LPC\src\com\lidapeng\des
目录 0 2018-06-21 20:18 DES_LPC\src\com\lidapeng\swing
目录 0 2018-06-21 20:18 DES_LPC\src\com\lidapeng\the_final
目录 0 2018-06-21 20:20 DES_LPC\src\com\lidapeng
目录 0 2018-06-21 20:12 DES_LPC\src\com
目录 0 2018-06-21 20:12 DES_LPC\src\test
目录 0 2018-06-21 20:12 DES_LPC\src
目录 0 2018-06-21 20:12 DES_LPC
----------- --------- ---------- ----- ----
276542 15
相关资源
- 基于客户端通信的DES加密的java实现
- 用Java实现的DES加密算法
- DES加密算法及其在Java中的实现
- java des算法实现加密文字以及图片
- 北京联通全网有关网上订购和点播接
- DES+3DES加密算法java代码+图解
- des加密算法java实现
- 带界面的DES加密解密java源码
- Java实现Des加密不用加载包
- DES加密文件二进制流
- Socket通信Des加密笔记
- Android下3DES加密算法的JNI实现(完善版
- des加密算法js+java加密与解密结果相同
- Java 使用DES加密
- DES加密算法JAVA实现带简单界面
- DES加密算法JAVA实现带简单界面
- DES加密、解密JS、Java版
- java 做的DES加密解密聊天室
- JS端与java(android)端3DES加密解密和
评论
共有 条评论