凯撒密码(Caesar)

简介: 凯撒密码(Caesar)

凯撒密码(Caesar)

  • 加密对象: 大小写字母
  • 原理:
  • 是一种移位加密方法,给每个字母排个索引,字母a-z索引依次为0-25
  • 偏移量是多少就向后面移动多少
  • 如:密文"Abc",偏移量为3,加密后为"Def"。移位量即是密钥.
  • 代码
# write by 2021/6/26
UPPER_DIC = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LOWER_DIC = "abcdefghijklmnopqrstuvwxyz"
def encrypt_caesar(string, offset):
    ciphertext = ""
    for i in string:
        if i in UPPER_DIC:
            new_index = (UPPER_DIC.index(i) + offset) % 26
            ciphertext += UPPER_DIC[new_index]
        elif i in LOWER_DIC:
            new_index = (LOWER_DIC.index(i) + offset) % 26
            ciphertext += LOWER_DIC[new_index]
        else:
            ciphertext += i
    return ciphertext
def decrypt_caesar(string, offset):
    return encrypt_caesar(string=string, offset=26-offset)
if __name__ == '__main__':
    ciphertext = encrypt_caesar("Caesar is good!", 3)
    plaintext = decrypt_caesar(ciphertext, 3)
    print(f"{plaintext}: {ciphertext}")


目录
相关文章
|
9月前
|
前端开发 程序员 API
(1)深度对比:Apipost vs Apifox (1):产品背景及API简单调试
API调试工具是每个开发者不可或缺的帮手。国外的Postman功能强大但不够“中国特色”,收费也让人望而却步。国内的Apipost和Apifox应运而生,旨在解决本地化需求。 Apipost由一位不满Postman的开发者亲手打造,界面直观、操作流畅,支持离线使用,特别适合需要频繁离线操作的场景。Apifox则致力于整合接口生命周期的各个流程,提供一体化解决方案,初次上手稍显复杂,但功能全面且潜力巨大。 两者各有千秋:Apipost更适合快速上手和离线使用,Apifox则在团队管理和功能整合方面表现突出。选择哪款工具,取决于你的具体需求和使用习惯。
|
人工智能 自然语言处理 搜索推荐
LLM在电商推荐系统的探索与实践
LLM在电商推荐系统的探索与实践
3978 1
|
数据可视化 Python
基于matplotlib轻松绘制漂亮的表格
基于matplotlib轻松绘制漂亮的表格
179 2
|
关系型数据库 MySQL 数据库
MySQL数据库—查询:关联查询(一篇教会你在多表关联下查询数据)
MySQL数据库—查询:关联查询(一篇教会你在多表关联下查询数据)
1134 0
|
关系型数据库 MySQL
navicate远程mysql时报错: connection isbeing used
如果以上方法都无法解决问题,可能需要进一步查看错误日志或考虑联系 Navicat 官方支持获取更详细的帮助。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
1409 0
|
Oracle 关系型数据库 数据库
PgSQL · 最佳实践 · pg_rman源码浅析与使用
背景 对于商业数据库来说,备份的功能一般都非常的全面。 比如Oracle,它的备份工具rman是非常强大的,很多年前就已经支持全量、增量、归档的备份模式,支持压缩等。 还支持元数据存储到数据库中,管理也非常的方便,例如保留多少归档,备份集的管理也很方便,例如要恢复到什么时间点,将此前的备份清除等等。 对于开源数据库来说,支持向商业版本这么丰富功能的比较少,PostgreSQ
3321 0
|
开发工具
home目录迁移至新分区
在用户home目录越来越大时,就可以考虑将home目录迁移至新的分区。 1.创建新分区。 fidisk /dev/sda:用磁盘管理器打开磁盘 n:新建 +10g :设置分区为10G w :保存 保存后使用 partprobe命令同步分区表 2.更新分区后格式化 保存后使用 partprobe命令同步分区表mkfs.ext4 /dev/sda6 格式化分区 3.创建挂载点,将新建立的分区挂载到挂载点,最后将home下的所有人间备份到分区中。
1652 0
ldconfig提示is not a symbolic link警告的去除方法
ldconfig提示is not a symbolic link警告的去除方法
881 0
ldconfig提示is not a symbolic link警告的去除方法
网站支付宝登录
网站支付宝登录是适用于网站页面进行授权。 一、文档地址 官方文档地址:[url]https://docs.open.alipay.com/263/105809[/url] 二、开发前准备工作 调用步骤:[url]https://openclub.alipay.com/read.php?tid=12194&fid=69[/url] 注意事项:1、支持沙箱测试;2、不需签约,但需要添加功能;3、支持第三方调用。
1878 12
|
存储 弹性计算 容灾
重磅!阿里云发布最新服务等级协议SLA ,多实例可用性升为99.995%
12月13日,全球前三的云计算公司阿里云公布了最新的弹性计算服务等级协议SLA,单实例的可用性从99.95%提升至99.975%,多可用区多实例可用性从99.99%提升至99.995%,均为全球最高水准。