zoukankan      html  css  js  c++  java
  • python3 实现RC4加解密

    Python 实现RC4加解密

    核心原理如下:

    • 导入包ARC4 其中Crypto如果没有可以网上搜索安装
    • 主要就是利用ARC4的new(传入key) 返回一个rc4对象
    • rc4对象在调用加密或者解密函数. 注意key必须是 bytes类型.如果不是要转换为bytes
    • 对于base64编码过的程序请先解码.然后再用
      代码如下:
    import sys
    import base64
    from Crypto.Cipher import  ARC4
    
    class rc4util():
        def __init__(self,key):
            if isinstance(key,str):
                self.__keyGen = key.encode()
            elif isinstance(key,bytes):
                self.__keyGen = key
        def __encrypt(self,data)->bytes:
            rc4 = ARC4.new( self.__keyGen)
            res = rc4.encrypt(data)
            return res
        def __decrypt(self,data)->bytes:
            rc4 = ARC4.new(self.__keyGen)
            res = rc4.decrypt(data)
            #res = base64.b64encode(res)
            return res
        def EncryptFileToDst(self,src,dst)->bool:
            with open(src,"rb") as f_read:
                data = f_read.read()
                res = self.__decrypt(data)
                with open(dst,"wb") as f_write:
                    f_write.write(res)
            return True
    def Entry(src,dst):
        key = bytes([0xD8, 0x7e, 0x54, 0x32, 0x61, 0x47, 0x33, 0x55]);
        rc4 = rc4util(key)
        bret = rc4.EncryptFileToDst(src,dst)
        if bret:
            print("加密成功")
        else:
            print("加密失败")
    def Decry(src,dst):
        key = bytes([0xD8, 0x7e, 0x54, 0x32, 0x61, 0x47, 0x33, 0x55]);
        rc4 = rc4util(key)
        bret = rc4.EncryptFileToDst(src,dst)
        if bret:
            print("加密成功")
        else:
            print("加密失败")
    
    if __name__ == "__main__":
        src = r"xxxsrcFile"  #这里是读取src文件数据,然后对其进行加密.加密的结果写入到dst文件中
        dst = r"xxxdstFile"
        Entry(src,dst);
    
    
    
    作者:IBinary


    坚持两字,简单,轻便,但是真正的执行起来确实需要很长很长时间.当你把坚持两字当做你要走的路,那么你总会成功. 想学习,有问题请加群.群号:725864912(收费)群名称: 逆向学习小分队 群里有大量学习资源. 以及定期直播答疑.有一个良好的学习氛围. 涉及到外挂反外挂病毒 司法取证加解密 驱动过保护 VT 等技术,期待你的进入。

    详情请点击链接查看置顶博客 https://www.cnblogs.com/iBinary/p/7572603.html
  • 相关阅读:
    下载并使用ASP.NET MVC v1.0 Futures
    关于DataGridView的数据源两个值得注意的小问题
    C++网络编程(二)客户端服务器程序
    C++多态、继承的简单分析
    XML文件解析器TXml
    数组
    CTS类型系统
    光阴不会虚度
    软件的大规模生产
    微创新和山寨的关系
  • 原文地址:https://www.cnblogs.com/iBinary/p/14918939.html
Copyright © 2011-2022 走看看