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

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 如何使用simulink建立一个永磁同步直线电机模型?
  • ¥30 天体光谱图的的绘制并得到星表
  • ¥15 PointNet++的onnx模型只能使用一次
  • ¥20 西南科技大学数字信号处理
  • ¥15 有两个非常“自以为是”烦人的问题急期待大家解决!
  • ¥30 STM32 INMP441无法读取数据
  • ¥15 R语言绘制密度图,一个密度曲线内fill不同颜色如何实现
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗