栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

DES的Java初始置换部分实现

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

DES的Java初始置换部分实现

  • 啦啦啦,我又来了,把进制问题解决后,其他就好搞了,刚刚把初始置换部分单独实现出来了!!!
    一个立志成为一个java工程师的小菜鸡进化史。
import java.util.Scanner;

public class helloword {
    public static void main(String[] args) {
        int[] mingwen = new int[64];
        Scanner in = new Scanner(System.in);
        System.out.print("请输入16进制的明文:");
        String kk = new String();
        kk = in.next();
        int len = kk.length();
        while (len != 16) {
            System.out.print("请重新输入16进制的明文:");
            kk = new String();
            kk = in.next();
            len = kk.length();
        }
        char[] kk1 = kk.toCharArray();
        int j = 0;
        for (int i = 0; i < 16; i++) {
            int a;
            if (kk1[i] >= '0' && kk1[i] <= '9')
                a = kk1[i] - '0';
            else
                a = kk1[i] - 'a' + 10;
            int n[] = new int[4];
            int f = 0;
            while (a != 0) {
                n[f] = a % 2;
                a = a / 2;
                f++;
            }
            mingwen[j * 4] = n[3];
            mingwen[j * 4 + 1] = n[2];
            mingwen[j * 4 + 2] = n[1];
            mingwen[j * 4 + 3] = n[0];
            j++;
        }
        System.out.print("二进制为:");
        for (int i = 0; i < 64; i++) {
            if (i % 64 == 0) System.out.println();
            System.out.print(mingwen[i]);
        }
        int[] 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};
        int[] mingwen_1 = new int[64];
        for (int i = 0; i < 64; i++) {
            mingwen_1[i] = mingwen[IP[i] - 1];
        }
        System.out.println();
        System.out.print("初始置换后的结果:");
        for (int i = 0; i < 64; i++) {
            if (i % 64 == 0) System.out.println();
            System.out.print(mingwen_1[i]);
        }
    }
}

欢迎各位大神进行指教!!!若有不足可在评论区留言讨论。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1027317.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号