GithubHelp home page GithubHelp logo

Comments (1)

wictorChaves avatar wictorChaves commented on July 17, 2024
#!/usr/bin/env python2
try:
    from urllib.request import urlopen
except ImportError:
    from urllib2 import urlopen
from axolotl.kdf.hkdfv3 import HKDFv3
from axolotl.util.byteutil import ByteUtil
import binascii
from Crypto.Cipher import AES
from pprint import pprint
import base64

class Decrypter():

    __arrayDeBytes = None

    def getBase64File(self):
        return base64.b64encode(bytearray(self.__arrayDeBytes)
                                )
    def getByteArray(self):
        return bytearray(self.__arrayDeBytes)

    def salvar(self, caminho):
        with open(caminho, 'wb') as f:
            f.write(bytearray(self.__arrayDeBytes))
            f.close()

    def decrypt(self, encimg, refkey, tipo = "image"):
        cryptKeys = self.getCryptKeys(tipo)
        refkey = base64.b64decode(refkey)

        derivative = HKDFv3().deriveSecrets(refkey, binascii.unhexlify(cryptKeys), 112)
        parts = ByteUtil.split(derivative, 16, 32)
        iv = parts[0]
        cipherKey = parts[1]
        e_img = encimg[:-10]
        AES.key_size = 128
        cr_obj = AES.new(key=cipherKey, mode=AES.MODE_CBC, IV=iv)
        return cr_obj.decrypt(e_img)

    def getMediaContent(self, url, mediaKey, tipo = "image"):
        data = urlopen(url).read()
        data = self.decrypt(data, mediaKey, tipo)
        self.__arrayDeBytes = data

    def getCryptKeys(self, tipo):
        if tipo == "image":
            return '576861747341707020496d616765204b657973'
        if tipo == "audio" or tipo == "ptt":
            return '576861747341707020417564696f204b657973'
        if tipo == "video":
            return '576861747341707020566964656f204b657973'
        if tipo == "document":
            return '576861747341707020446f63756d656e74204b657973'
        return None

from webwhatsapp-wrapper.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.