using DES/3DES with python

后端 未结 2 1009
-上瘾入骨i
-上瘾入骨i 2020-12-28 09:25

what is the best module /package in python to use des /3des for encryption /decryption. could someone provide example to encrypt data with des/3des on python.

2条回答
  •  南笙
    南笙 (楼主)
    2020-12-28 09:31

    pyDes can be used for both, DES and 3DES. Sample usage:

    from pyDes import *
    
    data = "Please encrypt my data"
    k = des("DESCRYPT", CBC, "\0\0\0\0\0\0\0\0", pad=None, padmode=PAD_PKCS5)
    d = k.encrypt(data)
    print "Encrypted: %r" % d
    print "Decrypted: %r" % k.decrypt(d)
    assert k.decrypt(d, padmode=PAD_PKCS5) == data
    

    An alternative is the Chillkat Python Encryption Library which supports a lot of encryption algorithms (including DES & 3DES), but it is not free. Sample usage:

    crypt.put_CryptAlgorithm("des")
    crypt.put_CipherMode("cbc")
    crypt.put_KeyLength(64)
    crypt.put_PaddingScheme(0)
    crypt.put_EncodingMode("hex")
    ivHex = "0001020304050607"
    crypt.SetEncodedIV(ivHex,"hex")
    keyHex = "0001020304050607"
    crypt.SetEncodedKey(keyHex,"hex")
    encStr = crypt.encryptStringENC("The quick brown fox jumps over the lazy dog.")
    print encStr
    decStr = crypt.decryptStringENC(encStr)
    print decStr
    

    Anyway, I hope that you are aware that neither DES nor 3DES are considered paritcularly safe nowadays, there are many better alternatives (AES in the first place if you want to stick to standards, or Twofish, Blowfish, etc...)

提交回复
热议问题