C语言加密解密,简单点不用复杂

题目三 信息加密
在军事、经济等很多领域,为了信息的传输的安全,经常采用加密的手段,将明文转变为密文密文进行传送。接受方再利用秘钥对密文进行还原进而阅览其中内容。
其中凯撒密码是一种常用的加密方法。其主要思想就是对于任意字符a,通过一个距离d,然后利用公式 f(a)=(a+d)%26,来将原来明文中的各个字母替换为与其距离为d的字母。其中d就是秘钥;
比如用凯撒密码加密,密钥取3时,加密示例如下:

由于凯撒密码过于简单,因此要求在对明文进行凯撒转化前,利用栅栏加密的一种改进加密先进行加密,然后再利用凯撒密码二次加密形成密文。
栅栏加密的一种改进加密方法思想如下:
设有明文字符串s,设置秘钥y(整数)。
(1)该加密方法就是将明文s拆分为若干个长度为y的子串。
比如字符串“we will attack the enemy at eight clock”,秘钥y为8,则分为子串“we will ”,“attack t”,“he enemy”,“at eigh”,“t clock”

(2)然后再将这些子串按顺序形成一个矩阵。比如上面的子串构成矩阵如下(图中没有字母的位置全部看做空格):

w e w i l l
a t t a c k t
h e e n e m y
a t e i g h
t c l o c k

(3)将矩阵中的字母按照纵向从左到右形成第一次密文。比如上述矩阵中对应的密文为:“wah tetea t tc wae licneolkeicl mgk tyh ”。

利用上述栅栏加密的一种改进加密方法对明文进行第一次加密后,在利用凯撒密码进行二次加密。
因此,一个原始明文,会先被栅栏加密以秘钥1进行第一次加密,然后在被凯撒加密算法以秘钥2二次加密。接受方收到密文后,再利用秘钥2和秘钥1逆向进行解密。
要求利用C语言实现上述加密系统,并将密文以文件形式保存,然后在用文件形式读取密文,进而用秘钥进行解密。

你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答


本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。


因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。