古典置换加密解密

将密文分组,分组组数= 密文长度/密钥长度,每组中的字符按照密钥中的序列排序。例如:加密: message:thisiscipher secret key:312(密钥为数字,最大数字默认为密钥长度,密钥中各位数字不同) 组数:12/3 = 4 => thi sis cip her 根据密钥312,thi 变成ith 其余组同理,得到密文ith ssi pci rhe 去掉空格:ithssipcirhe解密则反之实现思路:创建一个二维数组,密钥长度作为行数大小,mess
摘要由CSDN通过智能技术生成

将密文分组,分组组数= 密文长度/密钥长度,每组中的字符按照密钥中的序列排序。例如:
加密:
 message:thisiscipher
 secret key:312(密钥为数字,最大数字默认为密钥长度,密钥中各位数字不同)
 组数:12/3 = 4 => thi sis cip her
 根据密钥312,thi 变成ith
 其余组同理,得到密文ith ssi pci rhe
 去掉空格:ithssipcirhe
解密则反之

实现思路:
创建一个二维数组,密钥长度作为行数大小,message长度除密钥长度获得列数的大小。
得到一个原始排列顺序为123的二维数组,排列方式:
t h i
s i s
c i p
h e r

然后进行312顺序置换
i t h
s s i
p c i
r h e

循环输出后及实现效果:ithssipcirhe

package demo5;

import java.util.Scanner;

public class test2 {
   
    private final static String key = "312";
    private static String code1; //decrypt中加密文长度
    private static String l_message; //encrypt中的message传到解密中

    /**
     * 加密
     */
    private static void encrypt() {
   
        Scanner scanner = new Scanner(System.in);
        String message = scanner.nextLine();
        StringBuilder sb = new StringBuilder();
        int length = message.length();
        int length2 = test2.key.length();
        //确定几行
        int ret = length % length2;
        int rows;
        if (ret == 0) {
   
            rows = length / length2;
        } else {
   
            rows = (length / length2) + 1;
        }
        System.
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,以下是对应问题的回答: 1. 实验目的:掌握古典置换加密算法的原理和实现方法,了解基本的加密技术和密码学知识。 2. 实验仪器:计算机、编程软件。 3. 实验原理:古典置换加密算法是一种基于置换的加密技术,通过对明文进行置换操作,得到密文。置换操作可以是简单的替换操作,也可以是更复杂的置换操作,如换位、重排、翻转等。置换操作的具体方式可以通过密钥来确定,只有掌握了密钥才能解密。 4. 操作步骤: (1)选择置换算法和密钥:可以选择简单的替换算法,如凯撒密码算法,也可以选择更复杂的换位、重排、翻转等算法。密钥是置换算法的关键,必须妥善保管。 (2)编写程序实现置换算法:可以使用编程软件,如Python,实现置换算法,包括加密和解密两个过程。加密过程将明文根据密钥进行置换操作得到密文,解密过程则将密文根据密钥进行逆向置换操作得到明文。 (3)测试程序并分析结果:输入一组明文,使用程序进行加密和解密操作,检查结果是否正确,分析加密算法的安全性和加密效率。 5. 实验数据分析:实验结果应包括明文、密文、密钥和解密后的明文。可以分析置换算法的安全性和加密效率,探讨如何提高加密算法的安全性和效率。同时,需要注意密钥保密的问题,防止密钥泄露导致加密系统被攻破。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值