张艺兴爱学习 2021-10-14 18:30 采纳率: 100%
浏览 137
已结题

Playfair密码编写;(或者,维吉尼亚密码编写,输入明文长度是任意的)

Playfair密码编写;(或者,维吉尼亚密码编写,输入明文长度是任意的)

明文:量子通信保密技术的诞生和快速发展主要取决于以下两个因素:a、经典保密通信面临着三个难以彻底解决的关键问题,即密钥协商、身份识别和窃听检测,这些问题的有效解决需要新技术。b、在对新技术的探索中,人们发现了量子内在的安全特性及其可能的应用。

请写出你的密码机输出结果。

  • 写回答

1条回答 默认 最新

  • 技术专家团-Joel 2021-10-14 20:14
    关注

    你好,弗吉尼亚密码编写:
    给个matlab代码例子,仅供参考

    function codeTestMain  %主程序
    key = 'ZHANGYIXINGAIXUEXI'; % 密钥
    words = 'ILOVEYOUBABYILOVEZHANGYIXINGILOVESTUDY'; %要加密的字母(我爱你宝贝我爱张艺兴我爱学习)
    codeEncoded = encode(words,key)%输出加密后的明文
    codeDecoded = decode(codeEncoded,key)%输出解密后的字母
    end
    
    function codeOut = encode(codeIn, key)%加密子函数
    codeIn = upper(codeIn); % 先转换成大写字母比较方便计算
    key = upper(key);% 先转换成大写字母比较方便计算
    codeLen = length(codeIn);%要加密的字符串长度
    s = mod(0:codeLen-1, length(key))+1;% 密钥重复位置
    codeOut = mod(codeIn + key(s) - 2*'A',26)+'A';%加密
    codeOut = char(codeOut);%转成字母
    end
    
    function codeOut = decode(codeIn, key) % 解密子函数
    codeIn = upper(codeIn); % 先转换成大写字母比较方便计算
    key = upper(key);% 先转换成大写字母比较方便计算
    codeLen = length(codeIn);%要加密的字符串长度
    s = mod(0:codeLen-1, length(key))+1;% 密钥重复位置
    codeOut = mod(codeIn - key(s),26)+'A';%解密
    codeOut = char(codeOut);%转成字母
    end
    

    我的例子中输出的加密和解密信息:

    codeEncoded =
    
        'HSOIKWWRJNHYQIIZBHGHNTEGFFVTOLWSYWQCCF'
    
    
    codeDecoded =
    
        'ILOVEYOUBABYILOVEZHANGYIXINGILOVESTUDY'
    
    

    可见解密后就是原来的文字,加解密正确

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月24日
  • 已采纳回答 10月16日
  • 创建了问题 10月14日

悬赏问题

  • ¥15 linux驱动,linux应用,多线程
  • ¥20 我要一个分身加定位两个功能的安卓app
  • ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
  • ¥15 IAR程序莫名变量多重定义
  • ¥15 (标签-UDP|关键词-client)
  • ¥15 关于库卡officelite无法与虚拟机通讯的问题
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
  • ¥100 求采集电商背景音乐的方法
  • ¥15 数学建模竞赛求指导帮助