这个我是从百科中看到的,但是有些地方看不懂,在查阅资料后,进行了修改,希望对大家有帮助

加密

例如:密钥(密码学中好象没有密匙一词)矩阵

1 3

0 2

这个是加密的密钥

明文:HI THERE

去空格,2个字母一组,根据字母表顺序(如a就是1)换成矩阵数值如下,末尾的E为填充字元:

HI TH ER EE

8   20  5   5

9    8  18  5

HI 经过矩阵运算转换为 IS,具体算法参考下面的说明(mod是求余运算符):

|1 3| 8 :1*8+3*9=35 MOD26=9 =I

|0 2| 9 :0*8+2*9=18 MOD26=18=R

用同样的方法把“HI THERE”转换为密文“IR RPGJTJ”,注意明文中的两个E分别变为密文中的G和T。

解密

解密时,必须先算出密钥的逆矩阵,然后再根据加密的过程做逆运算。

逆矩阵算法公式:(与线性代数有关)

例如密钥矩阵=

|1 7|

|0 3|

AD-BC=1*3-0*7=3 3*X=1 mod26 所以 X=9

因此

|    1      7    |             |  3     -7   |

|       |   的逆矩阵为:9 *    |               |

|    0      3    |                         |   0     1    |

假设密文为“FOAOESWO”

FO AO ES  WO

6     1   5   23

15  15  19  15

9* |3 -7|   6= 9*(3*6-7*15)=-783 mod26 = 23=W

|0 1|  15 = 9*(0*6+1*15)= 135 mod26 = 5 =E

所以密文“FOAOESWO”的明文为“WEREDONE”

希尔密码C语言源代码,希尔密码加密解密(示例代码)相关推荐

  1. android java加密_Android、iOS和Java通用的AES128加密解密示例代码

    前言 移动端越来越火了,我们在开发过程中,总会碰到要和移动端打交道的场景,比如android和iOS的打交道.为了让数据交互更安全,我们需要对数据进行加密传输. 这篇文章给大家分享AES的加密和解密. ...

  2. 凯撒密码加密解密——Java代码(密码学)

    凯撒密码加密解密--Java代码(密码学) 凯撒密码: 恺撒密码(英语:Caesar cipher),或称恺撒加密.恺撒变换.变换加密,是一种最简单且最广为人知的加密技术.它是一种替换加密的技术,明文 ...

  3. 第10课 511遇见易语言大漠字库图片加密解密

    第10课 511遇见易语言大漠字库图片加密解密 小知识 给图片加密码防止被人盗用 加密工具 大漠综合工具 如果要使用加密后的图片 那么在代码里面一定要在使用前 setpicpwd 小知识:给字库加密码 ...

  4. php 密匙加密解密,带密匙的php加密解密示例分享

    这篇文章主要介绍了php加密解密示例,大家参考使用吧 复制代码 代码如下: /************************************************************* ...

  5. java pgp加密_基于Java Bouncy Castle的PGP加密解密示例

    # re: 基于Java Bouncy Castle的PGP加密解密示例  回复  更多评论 2016-03-02 10:32 by 毛小龙 对文件进行加密 在测试类里面已经跑通了 抽取出来调用就报这 ...

  6. 安全密码c语言编程,商用密码算法原理与C语言实现

    2020年1月1日,<中华人民共和国密码法>正式施行.国家鼓励和支持密码科学技术研究与应用,促进密码科学技术进步与创新,加强密码人才培养和队伍建设,采取多种形式加强密码安全教育.本书是在国 ...

  7. c语言编程文件的加密解密,C语言实现任何文件的加密解密功能

    本文实例为大家分享了C语言实现文件加密解密功能的具体代码,供大家参考,具体内容如下 使用命令提示符,实现任何文件的加密和解密功能. 代码如下: //#define _CRT_SECURE_NO_WAR ...

  8. android登录加密传输,android环境下两种md5加密方式(示例代码)

    在平时开发过程中,MD5加密是一个比較经常使用的算法,最常见的使用场景就是在帐号注冊时,用户输入的password经md5加密后,传输至server保存起来.尽管md5加密经经常使用.可是md5的加密 ...

  9. iOS 3DES加密解密(一行代码搞定)

    3DES(或称为Triple DES)是三重数据加密算法(TDEA,Triple Data Encryption Algorithm)块密码的通称.它相当于是对每个数据块应用三次DES加密算法.由于计 ...

  10. Java AES 256加密解密示例

    Java支持许多安全的加密算法,但是其中一些功能较弱,无法在安全性要求很高的应用程序中使用.例如,数据加密标准(DES)加密算法被认为是高度不安全的.今天介绍一下AES 256加密解密. 什么是 AE ...

最新文章

  1. 基于JSP实现毕业设计选题系统
  2. js笔记 - ajax中的get和post说明
  3. 十 ubus安装编译
  4. LeetCode 1233. 删除子文件夹
  5. 从月薪8K的分析师到月薪2W,只因我有了这份工具清单!
  6. php本机绿色调试,php本地调试工具下载|
  7. 20165204 Java第六周学习
  8. drawio流程图软件_Win10 一般软件个人收集
  9. 一台mysql数据库服务器_在一台服务器安装多个MySQL数据库
  10. hdu 2736 Average distance
  11. 海康威视SDK使用总结
  12. 浅析微信支付:商户平台开通现金红包、指定用户发放、红包记录查询
  13. Oracle 实体用户授权及同步同义词
  14. css+html 嵌套表格做简单网页
  15. 音频左右声道数据合并到一个声道
  16. 【用例设计】接口用例设计
  17. 计算机高深专业术语,Math
  18. gitbook搭建在线书籍
  19. Android 中Set 的基本使用方法
  20. 用xstart打开centos7图形化界面

热门文章

  1. AutoCAD 2019 mac中文
  2. html ajax 图片上传,Ajax 上传图片并预览的简单实现
  3. Multisim14 - 运行10版本文件时数码管一直显示为0的问题
  4. android gson解析json数据,Android中使用Gson解析JSON数据的两种方法
  5. android gson解析json
  6. 关于文件的MIME类型
  7. Curvy Little Bottles-二分和积分
  8. 计算机管理系统在哪里,Win7系统realtek高清晰音频管理器在哪里打开?
  9. 软件工程 教师信息管理系统
  10. 最新版本Eclipse安装SVN插件Subclipse过程