简单的文本加解密算法 |
您所在的位置:网站首页 › 简单的数字加密算法怎么写 › 简单的文本加解密算法 |
从古至今,信息安全都是一个很重要的问题,为此人们开发了许多用于加密信息的算法,比如凯撒密码,维吉尼亚密码等。(了解更多: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); } }输出: 源文本:世界上只有两样东西值得我们敬畏:一个是我们心中崇尚的道德准则,一个是我们头顶的星空。——康德 加密文本:乸疸乿呏杬亝梘亊觡储怌扶住日疰?乢亖暤扶住怼于嵵屼盰郈怜利劒?乮二暛抆佑妗飯盥暍竜の??弚怰 解密文本:世界上只有两样东西值得我们敬畏:一个是我们心中崇尚的道德准则,一个是我们头顶的星空。——康德 (更复杂的加解密算法:浅谈常见的七种加密算法及实现) |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |