
C语言程序问题
本程序对某电码文(原文)进行加密形成密码文,其加密算法如下假定原文为C1,C2,C3,…,Cn加密后形成的密文为S1,S2,S3,…,Sn,首先读入正整数key(key>...
本程序对某电码文(原文)进行加密形成密码文,其加密算法如下
假定原文为C1,C2,C3,…,Cn加密后形成的密文为S1,S2,S3,…,Sn,首先读入正整数key(key>1)作为加密钥匙,并将密文字符位置按顺时针方向连成一个环。
加密时从 S1 位置起顺时针计数,当数到第 key 个字符位置时,将原文中的字符放入该密文字符位置中,同时从环中除去该字符位置;接着从环中下一个字符位置起继续计数,当再次数到第 key 个字符位置时,将原文中字符 C2 放入其中,并从环中除去该字符位置;依次类推,直至 n 个原文字符全部放入密文环中。由此产生的 S1S2...Sn 即为原文的密文。
例如,当 Key=3 时,原文:this is a decoding system 的密文为:
aotgnhedi ys d imietsnc ss
当Key=4时,该原文的密文为:
ssdtyd htegiasiscnm e ion
我的疑问:k=3时,不是第3个字符?即iiac… 展开
假定原文为C1,C2,C3,…,Cn加密后形成的密文为S1,S2,S3,…,Sn,首先读入正整数key(key>1)作为加密钥匙,并将密文字符位置按顺时针方向连成一个环。
加密时从 S1 位置起顺时针计数,当数到第 key 个字符位置时,将原文中的字符放入该密文字符位置中,同时从环中除去该字符位置;接着从环中下一个字符位置起继续计数,当再次数到第 key 个字符位置时,将原文中字符 C2 放入其中,并从环中除去该字符位置;依次类推,直至 n 个原文字符全部放入密文环中。由此产生的 S1S2...Sn 即为原文的密文。
例如,当 Key=3 时,原文:this is a decoding system 的密文为:
aotgnhedi ys d imietsnc ss
当Key=4时,该原文的密文为:
ssdtyd htegiasiscnm e ion
我的疑问:k=3时,不是第3个字符?即iiac… 展开
1个回答
展开全部
你理解错了,文中是说将【密文】字符【位置】也就是S1-SN连成一个环。
当key =3
加密方法是,把原文的第一个字符C1(也就是't')放入密文第三个位置S3,
从环中去掉S3位置,继续数3个位置到S6,将C2放入S6也就是'h'放在第6个位置。
以此类推、、、
你疑问刚好是弄反了,未加密的连成的环。
如果楼主有空的话,把你搜集的关于加密的文献发点,正想看看,先谢过 了。
unmage@163.com
当key =3
加密方法是,把原文的第一个字符C1(也就是't')放入密文第三个位置S3,
从环中去掉S3位置,继续数3个位置到S6,将C2放入S6也就是'h'放在第6个位置。
以此类推、、、
你疑问刚好是弄反了,未加密的连成的环。
如果楼主有空的话,把你搜集的关于加密的文献发点,正想看看,先谢过 了。
unmage@163.com
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |