用python对secureCRT 7进行批量密码加密

本文介绍了一种在SecureCRT中批量导入系统并实现密码加密的方法。通过使用特定的密钥和Blowfish加密算法,可以将明文密码安全地保存在SecureCRT的会话文件中。文中提供了一个Python示例程序,演示了如何进行密码加密。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需要将一批系统导入到secureCRT 7中,如果不涉及用户密码的处理,处理过程是比较简单的,在scrt安装目录的sessions文件夹中,读取一个ini文件,以之为模板,将S:"HOstname"= 和 S:"Username"= 后的值,修改为要导入的系统即可。

如果需要将密码也同时写入,则需要将密码进行加密,写入S:"Password"=这个字段,并且要在加密字串前加上一个u的标记。经过网上的搜索,发现有将secureCRT 7 版本的ini中密码进行解密的资料,如 http://www.361way.com/securecrt-decrypt/6335.html 的这篇文章。有了解密方法,是否可以反其道而行,得到加密方法呢?尝试了一下,结果是肯定的。

核心是使用 5F B0 45 A2 94 17 D9 16 C6 C6 A2 FF 06 41 82 B7 和 24 A6 3D DE 5B D3 B3 82 9C 7E 06 F4 08 16 AA 07 这两串KEY进行两次Blowfish加密。源码如下,在python 3.7上运行通过,供需要的人士参考。注意,测试的密码是13位的,较长的密码,程序可能需要修改。

虽然解密方法只对7版本的secureCRT有效,但加密却无需考虑版本问题。因为8版本会对旧版ini进行更新,所以只需要用7版本的Ini模板生成的配置文件放到8的session目录下,也是可以工作的。

def encrypt(password):
    c1 = Blowfish.new(bytes.fromhex('5F B0 45 A2 94 17 D9 16 C6 C6 A2 FF 06 41 82 B7'.replace(' ','')), Blowfish.MODE_CBC, b'\x00'*8)
    c2 = Blowfish.new(bytes.fromhex('24 A6 3D DE 5B D3 B3 82 9C 7E 06 F4 08 16 AA 07'.replace(' ','')), Blowfish.MODE_CBC, b'\x00'*8)
    padded = bytes()
    for x in password:
        padded += x.encode() + b'\x00'    #密码以\x00分割
    padded += b'\x00\x00'    #添加密码结束标志

    plen = 8 - (len(padded) % 8)
    for x in range(0,plen):
        padded += str(x).encode() #补齐8的整数倍长度,填充的数据随便即可

    en1 = c1.encrypt(padded)
    en1 = b'1234'+en1+b'5678'   #对第一次加密的数据,前后添加4字节数据,填充数据随便即可
    en2 = c2.encrypt(en1)

    return en2.hex()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值