python:字符串加解密

这篇具有很好参考价值的文章主要介绍了python:字符串加解密。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

题目描述

 

1、对输入的字符串进行加解密,并输出。

2、加密方法为:

当内容是英文字母时则用该英文字母的后一个字母替换,同时字母变换大小写,如字母a时则替换为B;字母Z时则替换为a;

当内容是数字时则把该数字加1,如0替换1,1替换2,9替换0;

其他字符不做变化。

3、解密方法为加密的逆过程。

本题含有多组样例输入。

输入描述:

输入说明
输入一串要加密的密码
输入一串加过密的密码

输出描述:

输出说明
输出加密后的字符
输出解密后的字符

示例1

输入

abcdefg
BCDEFGH

输出

BCDEFGH
abcdefg

实现


def next_letter(letter):
    if letter == 'Z' or letter == 'z':
        return 'a'
    return chr(ord(letter) + 1).lower()


def previous_letter(letter):
    if letter == 'A' or letter == 'a':
        return 'z'
    return chr(ord(letter) - 1).lower()


# 加密
def encrypt():
    encrypt_letter = ''
    for i in need_encrypt:
        if i.isalpha():
            ii = next_letter(i)
            if i.upper() == i:
                encrypt_letter += ii
            else:
                encrypt_letter += ii.upper()
        elif i.isdigit():
            if i == '9':
                encrypt_letter += '0'
            else:
                encrypt_letter += str(int(i)+1)
        else:
            encrypt_letter += i
    print(encrypt_letter)


# 解密
def decode():
    decode_letter = ''
    for i in need_decode:
        if i.isalpha():
            ii = previous_letter(i)
            if i.upper() == i:
                decode_letter += ii
            else:
                decode_letter += ii.upper()
        elif i.isdigit():
            if i == '0':
                decode_letter += '9'
            else:
                decode_letter += str(int(i)-1)
        else:
            decode_letter += i
    print(decode_letter)


while 1:
    try:
        need_encrypt = input()
        need_decode = input()
        encrypt()
        decode()
    except:
        break

python:字符串加解密文章来源地址https://www.toymoban.com/news/detail-420416.html

到了这里,关于python:字符串加解密的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 题目:1967.作为子字符串出现在单词中的字符串数组

    ​ 题目来源:         leetcode题目,网址:1967. 作为子字符串出现在单词中的字符串数目 - 力扣(LeetCode) 解题思路:         遍历字符串数组,根据 word.indexOf(pattern) 的返回值是否为 -1 判断改字符串是否为单词的字符串并对其计数即可。 解题代码: 总结:         官方

    2024年02月13日
    浏览(41)
  • 题目:2609.最长平衡子字符串

    ​​ 题目来源:         leetcode题目,网址:2609. 最长平衡子字符串 - 力扣(LeetCode) 解题思路:        按要求进行模拟即可。 解题代码: 总结:         注意,当 1 的数量小于等于 0 的数量,可以组成一个长度为 1 的数量两倍的平衡字符串。         无官方题解。

    2024年02月12日
    浏览(28)
  • LeetCode竞赛题目—在LR字符串中交换相邻字符

    作者: 渴望力量的土狗 博客主页:渴望力量的土狗的博客主页 专栏:每日一道LeetCode 工欲善其事必先利其器,给大家介绍一款超牛的斩获大厂offer利器——牛客网 点击免费注册和我一起刷题吧 目录 题目描述:在LR字符串中交换相邻字符 解答思路:双指针法 分析: Java解题

    2024年01月21日
    浏览(44)
  • 题目:2185.统计包含给定前缀的字符串

    ​​ 题目来源:         leetcode题目,网址:2185. 统计包含给定前缀的字符串 - 力扣(LeetCode) 解题思路:        遍历判断即可。 解题代码: 总结:         官方题解也是一样的思路。

    2024年02月15日
    浏览(36)
  • 题目:2027.转换字符串的最少操作次数

    ​​ 题目来源:         leetcode题目,网址:2027. 转换字符串的最少操作次数 - 力扣(LeetCode) 解题思路:        遍历字符串,如果当前位置字符是 \\\'X\\\',计数加一并将当前元素及其后面的元素变为\\\'0\\\',然后继续遍历字符串。最后返回计数结果即可。 解题代码: 总结:  

    2024年02月16日
    浏览(29)
  • Java实现字符串加密与解密

    我们在设计登录程序时需要用到保存用户名和密码的功能,如果是直接写入到txt文件中保存很容易被木马程序识破,所以就必须先对密码加密,只留存密文。 今天介绍的是使用 十六进 制转换的方式加密数据。 得到结果: 757376662d312d6d7064626d697074752d323534342d717974646b 现在我们将

    2024年02月11日
    浏览(39)
  • 算法通关村第十二关-字符串基础题目

    思路:遍历字符串,将第i个字符和第N-i-1个字符串交换即可; 代码实现: 题目:反转字符串2 思路:每2k个一组,将其前k个字符反转,使用i+k与字符串长度n判断剩余字符串长度属于(0,k)还是 [k,2k)之间;然后按照要求剩余字符串即可; 代码实现: 题目:仅仅反转字母 思

    2024年01月22日
    浏览(38)
  • shell 几种字符串加解密方法

    第一种:〔 Python 与 Bash Shell 的结合 〕 这个命令会让你输入一个字符串,然后会再输出一串加密了的数字。 加密代码[照直输入]: python -c \\\'print reduce(lambda a,b: a*256+ord(b), raw_input(\\\"string: \\\"), 0)\\\' 解密代码[数字后+P]: dc -e 输出的数字P 第二种:〔 应该是纯 Bash Shell,含 VIM 的 xx

    2024年01月18日
    浏览(39)
  • 【算法】算法(模拟、指针等)解决字符串类题目(C++)

    字符串题目有很多种,这里筛选几个考察模拟、双指针等的题目,并用相关算法解决。 思路 题意分析 :题目要求找到字符串数组中的最长公共前缀。 解法一 : 两两比较 遍历数组,每次比较后更新最长公共前缀,并循环比较找最长公共前缀 解法二 : 统一比较 遍历第一个

    2024年01月16日
    浏览(38)
  • 小白水平理解面试经典题目LeetCode 594 最大和谐字符串

    这道题属于字符串类型题目,解决的办法还是有很多的,暴力算法,二分法,双指针等等。 和谐数组是指一个数组里元素的最大值和最小值之间的差别 正好是 1 。 现在,给你一个整数数组 nums ,请你在所有可能的子序列中找到最长的和谐子序列的长度。 数组的子序列是一个

    2024年01月23日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包