A self-contained cryptographic library for Python

Overview
https://github.com/Legrandin/pycryptodome/workflows/Integration%20test/badge.svg?branch=master

PyCryptodome

PyCryptodome is a self-contained Python package of low-level cryptographic primitives.

It supports Python 2.7, Python 3.4 and newer, and PyPy.

The installation procedure depends on the package you want the library to be in. PyCryptodome can be used as:

  1. an almost drop-in replacement for the old PyCrypto library. You install it with:

    pip install pycryptodome
    

    In this case, all modules are installed under the Crypto package.

    One must avoid having both PyCrypto and PyCryptodome installed at the same time, as they will interfere with each other.

    This option is therefore recommended only when you are sure that the whole application is deployed in a virtualenv.

  2. a library independent of the old PyCrypto. You install it with:

    pip install pycryptodomex
    

    In this case, all modules are installed under the Cryptodome package. PyCrypto and PyCryptodome can coexist.

For faster public key operations in Unix, you should install GMP in your system.

PyCryptodome is a fork of PyCrypto. It brings the following enhancements with respect to the last official version of PyCrypto (2.6.1):

  • Authenticated encryption modes (GCM, CCM, EAX, SIV, OCB)
  • Accelerated AES on Intel platforms via AES-NI
  • First class support for PyPy
  • Elliptic curves cryptography (NIST P-256, P-384 and P-521 curves only)
  • Better and more compact API (nonce and iv attributes for ciphers, automatic generation of random nonces and IVs, simplified CTR cipher mode, and more)
  • SHA-3 (including SHAKE XOFs), truncated SHA-512 and BLAKE2 hash algorithms
  • Salsa20 and ChaCha20/XChaCha20 stream ciphers
  • Poly1305 MAC
  • ChaCha20-Poly1305 and XChaCha20-Poly1305 authenticated ciphers
  • scrypt, bcrypt and HKDF derivation functions
  • Deterministic (EC)DSA
  • Password-protected PKCS#8 key containers
  • Shamir's Secret Sharing scheme
  • Random numbers get sourced directly from the OS (and not from a CSPRNG in userspace)
  • Simplified install process, including better support for Windows
  • Cleaner RSA and DSA key generation (largely based on FIPS 186-4)
  • Major clean ups and simplification of the code base

PyCryptodome is not a wrapper to a separate C library like OpenSSL. To the largest possible extent, algorithms are implemented in pure Python. Only the pieces that are extremely critical to performance (e.g. block ciphers) are implemented as C extensions.

For more information, see the homepage.

For security issues, please send an email to [email protected].

All the code can be downloaded from GitHub.

Comments
  • Decrypting textbook/no padding RSA values?

    Decrypting textbook/no padding RSA values?

    PyCrypto had the RSA.decrypt method to decrypt textbook RSA encoded values. I understand that PyCryptodome doesn't support encrypting or decrypting these values through the same method, but is there an alternative/hidden/private method that would achieve the same result? If not, is there a suggested alternative? I understand that it's not secure, but I'm just looking to decrypt some previously-encrypted values.

    opened by dstaley 31
  • Cryptodome with lambda AWS

    Cryptodome with lambda AWS

    Hello,

    Cryptodome works perfectly on my Windows 64 machine. I am trying to upload Cryptodome to a AWS lambda function but I am getting this error:

    module initialization error: Cannot load native module 'Cryptodome.Cipher._raw_ecb'

    What could be the issue?

    Thank you!

    opened by zed961 23
  • Illegal instruction in Math/_IntegerGMP

    Illegal instruction in Math/_IntegerGMP

    In initialization of dnspython, pycryptodome 3.9.7 gets a signal 4 in Math/_IntegerGMO with gmp-6.2.0. Reverting to gmp-6.1.2 fixes the problem. Platform: FreeBSD 12.1-RELEASE-p3 Versions: pycryptodome 3.9.7 dnspython 1.16.0 python37-3.7.6 gmp-6.2.0

    backtrace attached 3201.txt

    opened by mc3 21
  • I Keep getting OSError error: _raw_ecb.x86_64-linux-gnu.so: cannot open shared object file:

    I Keep getting OSError error: _raw_ecb.x86_64-linux-gnu.so: cannot open shared object file:

    Python 3.7.3 Pycryptodome Ubuntu 16.04

    Tried running with python 3.5 and got the same error but when i do the self test it runs successfully under python 3.5

    [Thu Aug 13 12:04:38.419037 2020] [wsgi:error] [pid 27768] [remote 157.55.39.158:13599] from Cryptodome.Cipher import AES [Thu Aug 13 12:04:38.419041 2020] [wsgi:error] [pid 27768] [remote 157.55.39.158:13599] File "/usr/local/lib/python3.7/site-packages/Cryptodome/Cipher/init.py", line 27, in [Thu Aug 13 12:04:38.419047 2020] [wsgi:error] [pid 27768] [remote 157.55.39.158:13599] from Cryptodome.Cipher._mode_ecb import _create_ecb_cipher [Thu Aug 13 12:04:38.419051 2020] [wsgi:error] [pid 27768] [remote 157.55.39.158:13599] File "/usr/local/lib/python3.7/site-packages/Cryptodome/Cipher/_mode_ecb.py", line 47, in [Thu Aug 13 12:04:38.419058 2020] [wsgi:error] [pid 27768] [remote 157.55.39.158:13599] """ [Thu Aug 13 12:04:38.419061 2020] [wsgi:error] [pid 27768] [remote 157.55.39.158:13599] File "/usr/local/lib/python3.7/site-packages/Cryptodome/Util/_raw_api.py", line 308, in load_pycryptodome_raw_lib [Thu Aug 13 12:04:38.419068 2020] [wsgi:error] [pid 27768] [remote 157.55.39.158:13599] raise OSError("Cannot load native module '%s': %s" % (name, ", ".join(attempts))) [Thu Aug 13 12:04:38.419079 2020] [wsgi:error] [pid 27768] [remote 157.55.39.158:13599] OSError: Cannot load native module 'Cryptodome.Cipher._raw_ecb': Trying '_raw_ecb.x86_64-linux-gnu.so': /usr/local/lib/python3.7/site-packages/Cryptodome/Util/../Cipher/_raw_ecb.x86_64-linux-gnu.so: cannot open shared object file: No such file or directory, Trying '_raw_ecb.so': /usr/local/lib/python3.7/site-packages/Cryptodome/Util/../Cipher/_raw_ecb.so: cannot open shared object file:

    opened by John-Oula 19
  • Bug in decryption using PKCS1_OAEP

    Bug in decryption using PKCS1_OAEP

    Finally trying to port a project from pycrypto to pycryptodome. Could be screwing something up is a bug in decryption that works in pycrypto but doesn't work in pycryptodome.

    Code to replicate, setup:

    from Crypto.Cipher import PKCS1_OAEP
    from Crypto.PublicKey import RSA
    
    private_key = b'''-----BEGIN RSA PRIVATE KEY-----
    MIIEogIBAAKCAQEAsOmwZaRjGBXhoKsHMJ1qR0CRd0r0v9suLXX/8J3aHmb7t/Vo
    SbCj3f+VYJw7mK7Q0OYBAN4+tueTUVQMAHOSY1YSVTUO+rG2gytGlpDsRRmB3SRp
    QReuCi3GYl7kUCnTL/s/rhoE8LzL4OmmGIpqIJPEDo7G7Odre3tU0OkvI6Twxbhg
    m3FnB/z1khKbddp7EsCwzB8LsszW+0Pw0Ukjv0H/fgVG82SokMcTJujO1cVsJ22W
    7c/Uqx84stDipclEHKBSRR7eXr7lpbDD8N311VxXhp9T8OB5J9xiJde8ZsewVRU/
    gugQUdCzRs8vhhTidAOw15clnyUNcOrsENaccwIDAQABAoIBAHaaNEfwDP74rGqq
    Pge5gKaEAwGWnr6AklSn5w3IxZHcOKT7QQ8l/LW3ws0h8FJL4HIrwEB0vlagqYK8
    dc9Xq6ws59131LL8sP7+5DPMtJkeoJFA989LsMHiLj2EoEudvpdMOUTe7LD34TbH
    bTLGmJ9+cNHRpkrsWoJODG6B5bhem5YKTVOiNXBLbVCZ66/ga4aaGhRr8kQYi6gD
    iHef8oZ7xNkc98VQzJsptz2y+X+Q1Xx/Wx+CJ9f9JBGIBgtL7jgJzOKFlWn1q6GO
    AhXNd8eGWpXXGEAFveQwY2xsDmKmbutJQ37U//ObobRKMCUKgCQQ+eyCCeAcC1iC
    8PHMrwECgYEAueJESf02bcwii7qoDQvFAr442mmkaZweGP47XJoOP/cQr6a9JjTH
    pEzIwnqHoDmKHXftsVtV95RV3nb4Max19WAQl+dQAz+c3RjnUXMVO28jASU4ziGq
    jPkXdZwxpHppdrnLBROMpLFKlqDPfD7Vgh2Fuyq6U/s829NfF6YLOsUCgYEA86Uk
    04HMil917d+T+HL2i64uhcCaSox1OQtNSLsA1/98YuyG3Tw7lXFbnvC/lB6Ai5P4
    NTG5B0LyZSYlvthnqzGzT9R4kz8jZjNTlnRe7hxmQqN9AFxeBas8lRwcVb1yci9h
    E2tMguIuWtS6r9VbIKwpIqAFVdKsFtU2YRF/TdcCgYBNxlNmVdEZPalSp4W696q1
    zBuDn2IQYibhtDXoN/kwYFKV/AD2ZG0H3Ky/Wn821fxo+g31AE9G6MTI8SRFvHAa
    e9hVho4e3dXnWI0osis3E/gkeYt8C/ANTge3yOOoeyN3bqN4e0aEfj3EKoLF7JBv
    AaU7u9P8YYmEPLtz7KCUNQKBgC3MShrT2D3eac137FmUSpHBAQ+1P4tp0ZMSc8mL
    FUKEzL3Plh459z1FHKLIwEo4XZNfEhX1rcEWrXej7w5roTkF053a43tSL/ZDCaBL
    aZi6j+JQ1utdcXMBWBbzPMRFIyEhlM7QqYYku+/o8tqgcUu38NeIWthiDGUSWPFw
    F4zrAoGAZYVFgQAyZFWKtt4n5jhLmzD6PsMEplLQIUZK/rfoj3ffiA7mx45CMxyx
    mRWWJpP7FmaWJpCZSgxWyCbYE3L7XQwU+MJGOCnaa0Jofaep+w3fnlo+hS2BbGtY
    ds9YzKHzERl+Wi9icR1BCJnT7APNj8dIxh8qye6V2CzcBlYiIqk=
    -----END RSA PRIVATE KEY-----'''
    
    bytes_encrypted_256 = b'tiB]"\xc5\xf9Q\xe6\xc1\xc1V\x99\x16\xbb\x7f\xe6\x8a\xe0\xc4-\xcc\x8c\xa1\x8e\xce\x82L\xd8\x9f\xa7\x1d)\x11+,\xfc\x91l\xceo\xf8\[email protected]\x04\x81\x98\xfd\xf6\x1e\xc5\xbeg\x82\xac,\xac\xf1-\x9aXlf:\xb6\xb1e(\xd0[[&\x04\x81`*YiI\xa1\x90\xad*\x94)\x81b.\x8f\\\x8e#mz\xab\x01=Cv3\xf7\x05.w;\x92\xd3\xc0\x8c)\xc0l\xde*(\x19\xd9\xb3k\x82\xc4\x9c\xa81W\x95\xc0%\x8cj\x07\xa51\x7f\xbf\n\xdc\x8cGH\x10G=\x85\x8c\x84,\xf1\xbc\x9dO\xac\xd3\x9a\x85OF\xc1k\xcb}\x06<HW\xc5\xb1\x02\xea\xa9u\xe3\xce\xab\xf2\xfe\xbf\x8c\xfd;\xef\xb6\xa8j\xc2Q\xa6\xe4\xd2\x9b\xc8\xb3I\xd3\xfdm\xf5\xce|.T\xd4\x85c\x06D\t\xb8C\xbd\xa3\xa7%|\xa1\xcf\x1f\xa0\xb0C\xe7\xbeG\x91\xbe\x8c\x19\xe4,@\xb0\xe7t)\x83\x89Yk\x8fS4\x9e\x1e\x9e\x00\xa0\x8d\na\xb4d\x19\x9cb'
    

    When running under the old pycrypto the following works, the output is correct:

    pycrypto_cipher = RSA.importKey(private_key)
    pycrypto_cipher.decrypt(bytes_encrypted_256)
    
    Out[2]: b'1YUPcxwbkzSr-FDPwlUHfA=='
    

    When run under the new pycryptodome pattern on the same data the following occurs:

    pycryptodome_RSA_key = RSA.importKey(private_key)
    pycryptodome_cipher = PKCS1_OAEP.new(pycryptodome_RSA_key)
    pycryptodome_cipher.decrypt(bytes_encrypted_256)
    
    <ipython-input-1-c34372672827> in <module>
         41 pycryptodome_RSA_key = RSA.importKey(private_key)
         42 pycryptodome_cipher = PKCS1_OAEP.new(pycryptodome_RSA_key)
    ---> 43 pycryptodome_cipher.decrypt(bytes_encrypted_256)
    
    ~/.pyenv/versions/3.6.10/envs/test2/lib/python3.6/site-packages/Crypto/Cipher/PKCS1_OAEP.py in decrypt(self, ciphertext)
        198             invalid |= bord(x)
        199         if invalid != 0:
    --> 200             raise ValueError("Incorrect decryption.")
        201         # Step 4
        202         return db[hLen + one_pos + 1:]
    
    ValueError: Incorrect decryption.
    
    

    Running python 3.6.10 via pyenv, tested on Ubuntu 19.04 and 19.10.

    opened by biblicabeebli 18
  • Python 3.5 error 'Only byte strings can be passed to C code'

    Python 3.5 error 'Only byte strings can be passed to C code'

    On python 3.5, I replaced pycrypto with pycryptodome and got the error 'Only byte strings can be passed to C code' when running my program which previously worked with pycrypto.

    Is there a solution?

    question 
    opened by dineshbvadhia 16
  • ValueError: Error 3 while encrypting in ECB mode

    ValueError: Error 3 while encrypting in ECB mode

    Hi,

    I'm trying a very simple encryption with this code

        bkey = '0123456789abcdef'.encode('utf-8')
        bclave = "A160".encode('utf-8')
    
        cipher = AES.new(bkey, AES.MODE_ECB)
        ciphertext = cipher.encrypt(bclave)
    

    but I'm getting "ValueError: Error 3 while encrypting in ECB mode" I have no idea what "Error 3" means, could you help me please

    bug 
    opened by alfaro28 16
  • Crypto.Util.Counter.new returns a dictionary instead of an object (how to keep track of/get IV value for AES-CTR?)

    Crypto.Util.Counter.new returns a dictionary instead of an object (how to keep track of/get IV value for AES-CTR?)

    Python version: 3.9.2 Pycryptodome version: 3.15.0 Arrived here migrating from pycrypto which has recently stopped working (syntax error in the code) unless I used to run python2 for my program, I'm not entirely sure. Issue: Crypto.Util.Counter.new(...) returns a dictionary when the documentation clearly says "Returns: An object that can be passed with the :data:counter parameter to a CTR mode cipher."

    opened by Source61 15
  • Discussion on ElGamal generator safe check

    Discussion on ElGamal generator safe check

    This is a problem starting from PyCrypto.

    The implementation of ElGamal is not secure -- the problem is that DDH assumption does not hold for the group modulus $p$.

    It is only believed to hold for a safe prime $p=2q+1$, where $q$ and $p$ are primes. And the generator $g$ is not the generator of order $p-1$. It should be the order $q$.

    Only, in this case, the ElGamal is safe because the underlying DDH assumption holds.

    You can check the page 3 of this scribe note for a small explanation. Note that in many IEEE standards for ElGamal, their generator is also not the one here.

    https://people.eecs.berkeley.edu/~alexch/docs/CS276-F2015/lecture-14.pdf

    My problem:

    1. Disable ElGamal?

    2. Let me submit a PR to correct this one? Note that the secure ElGamal takes a super long time to find a good prime.

    And also, I notice that in the documentation, ElGamal is not preferred. However, actually, it is better than RSA, if we want to use the homomorphism.

    1. If we want to use RSA with homomorphism, this can only be the textbook RSA, which is insecure. If we use the one with padding, we lose the homomorphism of RSA.

    2. But ElGamal can remain secure if we want homomorphism.

    bug 
    opened by weikengchen 15
  • Observing

    Observing "Segmentation fault" in AES Encrypt in pycryptodome usage

    Hi Team,

    I am using pysnmp package which uses pycryptodome for encryption. I am observing "Segmentation fault" when AES encryption is attempted. Below is the call stack for it. Any suggestion on what could be going wrong? FYI, I am running this on "CentOS release 6.4 (R3.1.0)"

    Program received signal SIGSEGV, Segmentation fault.  
    0xf651dfb5 in AESNI_encrypt (bb=0x87f3ab8, in=0xf625f328 "", out=0x87af5e0 "", data_len=16) at src/AESNI.c:156
    156     src/AESNI.c: No such file or directory.
            in src/AESNI.c
    Missing separate debuginfos, use: debuginfo-install bzip2-libs-1.0.5-7.SCLC6_4.R3.0.2.i686 glibc-2.12-1.192.SCLC6_4.R3.0.1.i686 iveopenssl-1.0.2n-2.SCLC6_4.R3.0.2.i686 python36-libs-3.6
    .2-2.SCLC6_4.R3.0.2.i686 xz-libs-4.999.9-0.3.beta.20091007git.SCLC6_4.R3.0.2.i686
    (gdb) bt
    #0  0xf651dfb5 in AESNI_encrypt (bb=0x87f3ab8, in=0xf625f328 "", out=0x87af5e0 "", data_len=16) at src/AESNI.c:156
    #1  0xf69e4969 in CFB_start_operation (cipher=0x87f3ab8, iv=0xf625f328 "", iv_len=16, segment_len=16, pResult=0x879a4f4) at src/raw_cfb.c:97
    #2  0xf690744f in ffi_call_SYSV () at src/x86/sysv.S:61
    #3  0xf6907280 in ffi_call (cif=0xf6265188, fn=0xf69e4820 <CFB_start_operation>, rvalue=0xf62651e8, avalue=0xf62651d0) at src/x86/ffi.c:213
    #4  0xf669adca in cdata_call (cd=0xf645f038, args=0xf644be3c, kwds=0x0) at c/_cffi_backend.c:3025
    #5  0xf74d1a34 in _PyObject_FastCallDict () from /usr/lib/libpython3.6m.so.1.0
    #6  0xf74d2467 in _PyObject_FastCallKeywords () from /usr/lib/libpython3.6m.so.1.0
    #7  0xf75966e1 in ?? () from /usr/lib/libpython3.6m.so.1.0
    #8  0xf759c060 in _PyEval_EvalFrameDefault () from /usr/lib/libpython3.6m.so.1.0
    #9  0xf7594f9c in PyEval_EvalFrameEx () from /usr/lib/libpython3.6m.so.1.0
    #10 0xf759508c in ?? () from /usr/lib/libpython3.6m.so.1.0
    #11 0xf7596461 in _PyFunction_FastCallDict () from /usr/lib/libpython3.6m.so.1.0
    #12 0xf74d1b50 in _PyObject_FastCallDict () from /usr/lib/libpython3.6m.so.1.0
    #13 0xf74d260c in _PyObject_Call_Prepend () from /usr/lib/libpython3.6m.so.1.0
    #14 0xf74e972a in ?? () from /usr/lib/libpython3.6m.so.1.0
    #15 0xf74d26ba in PyObject_Call () from /usr/lib/libpython3.6m.so.1.0
    #16 0xf75389ce in ?? () from /usr/lib/libpython3.6m.so.1.0
    #17 0xf7535744 in ?? () from /usr/lib/libpython3.6m.so.1.0
    #18 0xf74d1a34 in _PyObject_FastCallDict () from /usr/lib/libpython3.6m.so.1.0
    #19 0xf74d2467 in _PyObject_FastCallKeywords () from /usr/lib/libpython3.6m.so.1.0
    #20 0xf75966e1 in ?? () from /usr/lib/libpython3.6m.so.1.0
    #21 0xf759c060 in _PyEval_EvalFrameDefault () from /usr/lib/libpython3.6m.so.1.0
    #22 0xf7594f9c in PyEval_EvalFrameEx () from /usr/lib/libpython3.6m.so.1.0
    #23 0xf75960bc in ?? () from /usr/lib/libpython3.6m.so.1.0
    #24 0xf759699f in PyEval_EvalCodeEx () from /usr/lib/libpython3.6m.so.1.0
    #25 0xf750142c in ?? () from /usr/lib/libpython3.6m.so.1.0
    #26 0xf74d26ba in PyObject_Call () from /usr/lib/libpython3.6m.so.1.0
    #27 0xf759bc84 in _PyEval_EvalFrameDefault () from /usr/lib/libpython3.6m.so.1.0
    #28 0xf7594f9c in PyEval_EvalFrameEx () from /usr/lib/libpython3.6m.so.1.0
    #29 0xf75960bc in ?? () from /usr/lib/libpython3.6m.so.1.0
    #30 0xf759699f in PyEval_EvalCodeEx () from /usr/lib/libpython3.6m.so.1.0
    #31 0xf750142c in ?? () from /usr/lib/libpython3.6m.so.1.0
    #32 0xf74d26ba in PyObject_Call () from /usr/lib/libpython3.6m.so.1.0
    #33 0xf759bc84 in _PyEval_EvalFrameDefault () from /usr/lib/libpython3.6m.so.1.0
    #34 0xf7594f9c in PyEval_EvalFrameEx () from /usr/lib/libpython3.6m.so.1.0
    #35 0xf75960bc in ?? () from /usr/lib/libpython3.6m.so.1.0
    #36 0xf7596542 in ?? () from /usr/lib/libpython3.6m.so.1.0
    #37 0xf7596752 in ?? () from /usr/lib/libpython3.6m.so.1.0
    

    Thanks in advance...

    opened by ICKGeek 14
  • Building 'Crypto.Math._montgomery' extension fails on Solaris.

    Building 'Crypto.Math._montgomery' extension fails on Solaris.

    Hi,

    And thank you for PyCryptodome! I am looking into using it to replace PyCrypto in this open-source project: https://github.com/chevah/python-package.

    Unfortunately, building Crypto.Math._montgomery extension fails on Solaris with:

    building 'Crypto.Math._montgomery' extension
    cc -DNDEBUG -O -m64 -Kpic -DPYCRYPTO_LITTLE_ENDIAN -DLTC_NO_ASM -Isrc/ -I/srv/buildslave/runtime/build-solaris11-x64/slave/python-package-solaris-11/build/build/python2.7-solaris11-x64/include/python2.7 -c src/montgomery.c -o build/temp.solaris-2.11-i86pc.64bit-2.7/src/montgomery.o
    "src/multiply.h", line 54: syntax error before or at: t
    "src/multiply.h", line 54: warning: undefined or missing type for: t
    "src/multiply.h", line 54: warning: undefined or missing type for: const
    "src/multiply.h", line 54: warning: undefined or missing type for: uint64_t
    "src/multiply.h", line 54: warning: undefined or missing type for: uint64_t
    "src/multiply.h", line 54: warning: undefined or missing type for: size_t
    cc: acomp failed for src/montgomery.c
    error: command 'cc' failed with exit status 2
    

    The above was from the 5.12 Sun C compiler bundled with Solaris Studio 12.3 on Solaris 11.2 X86 while building 64bit binaries, but the build fails similarly for Solaris 11.2 SPARC (while building 32bit binaries) and latest Solaris 10 (when building 64bit X86 binaries and 32bit SPARC binaries).

    On a related note, some more warnings common to all these variations:

    Testing support for 128-bit integer
    Target does not support 128-bit integer
    Testing support for intrin.h header
    Target does not support intrin.h header
    Testing support for cpuid.h header
    Target does not support cpuid.h header
    Warning: compiler does not support AESNI instructions
    Warning: compiler does not support CLMUL instructions
    
    "src/raw_cbc.c", line 44: warning: zero or negative subscript
    
    "src/raw_ofb.c", line 50: warning: zero or negative subscript
    
    "src/scrypt.c", line 83: warning: operands have incompatible pointer types: op "!="
    

    And a warning specific to Solaris 10 builds:

    "src/common.h", line 121: warning: implicit function declaration: posix_memalign
    
    bug solaris 
    opened by dumol 13
Releases(v3.16.0x)
Python Encryption Name Game

Python 3.9.7 Encryption Name Game Encrypt a name with numbers using a Caesar cipher! You can choose different numbers to encrypt your name from 1 to o

Armand Brunelle 3 Dec 24, 2021
A repository for Algogenous Smart Contracts created on the Algorand Blockchain.

Smart Contacts Alogrand Smart Contracts using Choice Coin. Read Docs for how to implement Algogenous Smart Contracts for your own applications. Smart

Choice Coin 3 Dec 20, 2022
Cryptocurrency with implementet Blockchain

Cryptocurrency with implementet Blockchain

Mario 1 Mar 24, 2022
Linear encryption software programmed with python

Echoder linear encryption software programmed with python How does it work? The text in the text section runs a function with two keys entered keys mu

Emre Orhan 4 Dec 20, 2021
Hyval will store your information encrypted and decrypt it when needed

Hyval will store your information encrypted and decrypt it when needed

soroush safari 3 Oct 31, 2021
En- and decrypting text-messages by creating a key with of the fibonacci-sequence

En- and decrypting text-messages by creating a key with of the fibonacci-sequence. This key helps to create mathematical functions, whose zeros should generates the encrypted message.

Pulsar 1 Feb 05, 2022
Secure open-source password manager.

aes256_passwd_store This script securely encrypts or decrypts passwords on disk within a custom database file. It also features functionality to retri

14 Nov 15, 2022
Tools for running airdrop and token distribution campaigns on the Solana blockchain.

Overview This repository contains some of the scripts we have used for running our airdrop campaigns and other distributions. Initially, all of these

147 Nov 17, 2022
obj-encrypt is an encryption library based on the AES-256 algorithm.

obj-encrypt is an encryption library based on the AES-256 algorithm. It uses Python objects as the basic unit, which can convert objects into binary ciphertext and support decryption. Objects encrypt

Cyberbolt 2 May 04, 2022
This program generate hashes from random salts

Hash Generator This program generate hashes from random salts. How to install Install this program using python 3 and pip: pip install . In the future

Diesan Romero 2 Aug 20, 2022
Signarly is a cryptocurrency trading bot.

Signarly is a cryptocurrency trading bot.

Zakaria EL Mesaoudi 5 Oct 06, 2022
Advanced Digital Envelope System Using Cryptography Techniques (Encryption & Decryption)

Advanced-Digital-Envelope-System Advanced Digital Envelope System Using Cryptography Encryption Techniques The digital envelope system is the techniqu

NelakurthiSudheer 2 Jan 03, 2022
DIY gravity falls cryptograms made with python

ciphers-cryptograms some diy code to implementing ciphers-cryptograms from gravity falls with python, it's fun tho Algorithm or ciphers list Caesar At

Muhammad Asthi Seta Ari Yuwana 3 Jun 26, 2022
XMRiGUI is free and open-source crypto miner for Linux. It uses XMRig for mining and GTK3 for GUI.

XMRiGUI is free and open-source crypto miner for Linux. It uses XMRig for mining and GTK3 for GUI.

29 Jul 07, 2022
Encrypt decrypt files - Programmed in Python | PySimpleGUI

Crypter Programmed in Python | PySimpleGUI If you like it give it a star How it works Crypter program use Fernet for encryption. Fernet guarantees tha

Adrijan 11 Jun 18, 2022
Calculate your taxes from cryptocurrency gains

CoinTaxman helps you to bring your income from crypto trading, lending, ... into your tax declaration.

Jeppy 118 Dec 26, 2022
🔑 Password manager and password generator

Password-Manager Create Account Quick Login Generate Password Save Password Offline App Passwords are stored on your system and no one has access to t

Abbas Ataei 41 Nov 09, 2022
Bitcoin Clipper malware made in Python.

a BTC Clipper or a "Bitcoin Clipper" is a type of malware designed to target cryptocurrency transactions.

Nightfall 96 Dec 30, 2022
Crypto-curriences analysis

Crypto_analysis Discription: simple streamlit(screener) app to make MMA and OSC analysis for cyrpto-currenices, and gives resaults for which coins are

13 Nov 01, 2021
BTCRecover is an open source wallet password and seed recovery tool.

BTCRecover is an open source wallet password and seed recovery tool. For seed based recovery, this is primarily useful in situations where you have lost/forgotten parts of your mnemonic, or have made

2 Aug 18, 2022