简单的文本加解密算法

您所在的位置:网站首页 简单的数字加密算法怎么写 简单的文本加解密算法

简单的文本加解密算法

2024-07-07 01:44:21| 来源: 网络整理| 查看: 265

从古至今,信息安全都是一个很重要的问题,为此人们开发了许多用于加密信息的算法,比如凯撒密码,维吉尼亚密码等。(了解更多:4种古典密码算法的设计与实现——C++)

我们知道,对于a,a^k^a=a,所以我们可以用异或运算来对文本进行加密。

import java.util.*; public class Main { public static void main(String[] args) { String str = "世界上只有两样东西值得我们敬畏:一个是我们心中崇尚的道德准则,一个是我们头顶的星空。——康德"; System.out.println("源文本:"+str); char key = 'k';//密钥 char strC[] = str.toCharArray(); for (int i=0; i//将strC[]的每个字符再次与密钥做异或运算,解密 strC[i] ^= key; } String strUnCode = new String(strC); System.out.println("解密文本:"+strUnCode); } }

输出:

源文本:世界上只有两样东西值得我们敬畏:一个是我们心中崇尚的道德准则,一个是我们头顶的星空。——康德 加密文本:乽甧乡厁杢乏桜乷褔偗忼扺亇攇甤?乫乁晄扺亇徨乆嵬山盯逸応冭割?乫乁晄扺亇奟頝盯晴稑ど??廜応 解密文本:世界上只有两样东西值得我们敬畏:一个是我们心中崇尚的道德准则,一个是我们头顶的星空。——康德

仅仅这样加密的话,我们的密钥就只能是一个字符,这怎么能行?所以我们对程序进行修改,让它能够处理多个字符的密钥。

import java.util.*; public class Main { public static void main(String[] args) { String str = "世界上只有两样东西值得我们敬畏:一个是我们心中崇尚的道德准则,一个是我们头顶的星空。——康德"; System.out.println("源文本:"+str); char key[] = {'b','l','u','e','c','y','a','n'};//密钥 int k = 0; //将strC[]的字符序列按顺序以key.length个字符为一组(最后一组中的字符数可少于key.length), //对每一组中的字符用密钥数组key的对应字符做异或运算,加密 char strC[] = str.toCharArray(); for (int i=0; i strC[i] ^= key[k++%key.length]; } String strUnCode = new String(strC); System.out.println("解密文本:"+strUnCode); } }

输出:

源文本:世界上只有两样东西值得我们敬畏:一个是我们心中崇尚的道德准则,一个是我们头顶的星空。——康德 加密文本:乴甠乿厏杪九桖乲褝偐忢扴亏攕甮?乢乆晚扴亏徺乌嵩屸盨逦忒冥剠?乮么晃扤争套頏盥晱稘の??廔忎 解密文本:世界上只有两样东西值得我们敬畏:一个是我们心中崇尚的道德准则,一个是我们头顶的星空。——康德

现在我们的程序可以使用多个字符的密钥了。那么如果我们想换个加密算法运算呢?这也很容易实现,比如我们可以把异或运算实现加解密换成用加法加密,用减法解密。

import java.util.*; public class Main { public static void main(String[] args) { String str = "世界上只有两样东西值得我们敬畏:一个是我们心中崇尚的道德准则,一个是我们头顶的星空。——康德"; System.out.println("源文本:"+str); char key[] = {'b','l','u','e','c','y','a','n'};//密钥 int k = 0; //将strC[]的字符序列按顺序以key.length个字符为一组(最后一组中的字符数可少于key.length), //对每一组中的字符用密钥数组key的对应字符做加法运算,加密 char strC[] = str.toCharArray(); for (int i=0; i strC[i] -= key[k++%key.length]; } String strUnCode = new String(strC); System.out.println("解密文本:"+strUnCode); } }

输出:

源文本:世界上只有两样东西值得我们敬畏:一个是我们心中崇尚的道德准则,一个是我们头顶的星空。——康德 加密文本:乸疸乿呏杬亝梘亊觡储怌扶住日疰?乢亖暤扶住怼于嵵屼盰郈怜利劒?乮二暛抆佑妗飯盥暍竜の??弚怰 解密文本:世界上只有两样东西值得我们敬畏:一个是我们心中崇尚的道德准则,一个是我们头顶的星空。——康德

(更复杂的加解密算法:浅谈常见的七种加密算法及实现)



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭