维吉尼亚密码 算法 Java实现
输入一个字符串作为秘钥K,对输入的任意字符串(暂时只考虑英文字符和数字)可以输出维吉尼亚密码算法加密的密文。
假如以上面第一行代表明文字母,左面第一列代表密钥字母,对如下明文加密:
TO BE OR NOT TO BE THAT IS THE QUESTION
当选定RELATIONS作为密钥时,加密过程是:明文一个字母为T,第一个密钥字母为R,因此可以找到在R行中代替T的为K,依此类推,得出对应关系如下:
密钥:RELAT IONSR ELATI ONSRE LATIO NSREL
明文:TOBEO RNOTT OBETH ATIST HEQUE STION
密文:KSMEH ZBBLK SMEMP OGAJX SEJCS FLZSY
import java.util.Scanner;
public class WJNY{private Scanner scan;public void jiami() {System.out.print("please enter the key:");scan = new Scanner(System.in);String key = scan.nextLine();System.out.print("please enter the plaintext:");Scanner scan = new Scanner(System.in);String pt = scan.nextLine();scan.close();char[] k = new char[key.length()];//建立存储密钥的数组char[] c = new char[pt.length()];//建立存储明文的数组System.out.println("ciphertext:");for (int i = 0; i < pt.length(); i++) {c[i] = pt.charAt(i);//把明文的字符赋给数组c[]k[i] = key.charAt(i);//把密钥的字符赋给数组k[]int temp = k[i] - 65;//计算出密钥和字符A的ascii码差值if (c[i] + temp > 90) {c[i] -= (26 - temp);} else {c[i] += temp;}System.out.print(c[i]);}System.exit(0);}public static void main(String[] args){WJNY wjny=new WJNY();wjny.jiami();}
}
维吉尼亚密码 算法 Java实现相关推荐
- 如何计算维吉尼亚密码?Java实现维吉尼亚密码的加密解密算法
文章目录 如何计算维吉尼亚密码? Java实现加密算法 Java实现解密算法 参考博客 如何计算维吉尼亚密码? 计算维吉尼亚密码有2种方式,一种是根据密码表查找,另一种是手动计算方法. 1.密码表查找 ...
- 信息安全——维吉尼亚密码算法(C++实现)
信息安全导论课程学习的实验一,维吉尼亚密码算法C++的实现. 维吉尼亚密码算法是一种代换密码算法,直观上来说,密钥一般短于明文长度,因此加密时需要将明文根据密钥长度进行分组,每一组明文根据密钥对应(0 ...
- C++vigenere cipher维吉尼亚密码算法(附完整源码)
vigenere cipher维吉尼亚密码的算法 vigenere cipher维吉尼亚密码的完整源码(定义,实现,main函数测试) vigenere cipher维吉尼亚密码的完整源码(定义,实现 ...
- 【密码学原理与实践】(四)维吉尼亚密码 符java代码实现
维吉尼亚密码(Vigenere Cipher) 转载请著明出处 无论是移位密码还是代换密码,一旦秘钥被选定,则每个字母对应的数字都被加密变换成对应的唯一数字.我们称这种为单表代换密码,而本篇讲的是一种 ...
- RSA算法与维吉尼亚密码
RSA算法 RSA算法描述 第1步:用两个很大的互异的质数p和q(p和q必须保密),计算它们的乘积n=pq:n是模数. 第2步:选择一个比n小的数e,它与(p-1)(q-1)互为质数,即除了1以外,e ...
- 密码学——维吉尼亚密码
文章目录 前言 一.维吉尼亚密码简介 二.维吉尼亚算法 1.加密算法 2.解密算法 3.主函数 总结 前言 本内容为博主学习维吉尼亚密码的笔记,如有错误,烦请指正. 一.维吉尼亚密码简介 维吉尼亚密码 ...
- Java实现凯撒密码、维吉尼亚密码、双换位密码、RC4算法加密
文章目录 前言 一.凯撒密码 二.维吉尼亚密码 三.双换位密码 四.RC4算法加密 前言 本博文为信息安全与支付课程的课程作业. 一.凯撒密码 文件有:Caesar.java.输入文件input1.t ...
- 维吉尼亚密码Java实现
维吉尼亚密码是一种古典密码,属于代换密码,而且是多表代换密码. 密文对应的字母数字=明文对应的字母数字+密钥对应的字母数字 例如: 明文abcde,密钥abcd,对应的密文就是bdfhf,第五个明文e ...
- 密码学笔记——维吉尼亚密码
维吉尼亚密码 一.简介 维吉尼亚密码是使用一系列凯撒密码组成密码字母表的加密算法,属于多表密码的一种简单形式. 二.加密算法 直接拿例子来说,比如我要加密一段明文 明文:THISISTO ...
最新文章
- C语言scanf fgets,C语言中输入函数(scanf()、fgets()和gets())的区别详解
- Fetch API HTTP请求实用指南
- Winform中自定义ZedGraph右键复制成功后的提示
- iOS之自定义封装tabBar
- CSS display属性的值及作用
- 我的工作网怎么样_分享一下我在珍爱网的相亲经历
- 亚马逊涨了 $4 千亿?!为什么它能成为疫情中获益最大的公司
- 数据科学 IPython 笔记本 9.11 结构化数据:NumPy 的结构化数组
- 百度大脑EasyMonitor升级2.0,全新发布软硬一体方案EM-BOX 边缘部署易集成
- 教您用事务一次处理多条SQL语句
- 阿里云nginx站点http升级https
- php jquery 实例教程,php jquery 多文件上传简单实例
- 分解例题_2020年中考数学考点之利用平方差公式进行因式分解习题练习
- 数学对数 log lg ln 简介
- 关于邮箱的POP协议、imap协议、imap协议简单讲解
- WGCLOUD部署对服务器硬件配置的一些建议
- [HEOI 2013 day2] 钙铁锌硒维生素 (线性代数,二分图匹配)
- python怎么实现模糊找色_Python下尝试实现图片的高斯模糊化
- doc转swf,主流文档在线查看解决方案--类似百度文档功能
- leetcode初级———旋转数组的多种算法总结