• 大小: 249KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-12-27
  • 语言: Java
  • 标签: des加密  

资源简介

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\Myframe.java

     文件        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


评论

共有 条评论