mô-đun/gói tốt nhất trong python để sử dụng des/3des để mã hóa/giải mã là gì. ai đó có thể cung cấp ví dụ để mã hóa dữ liệu với des/3des trên python.sử dụng DES/3DES với python
Trả lời
pyDes có thể được sử dụng cho cả DES và 3DES. sử dụng mẫu:
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
Một thay thế là Chillkat Python Encryption Library mà hỗ trợ nhiều thuật toán mã hóa (bao gồm DES & 3DES), nhưng nó là không miễn phí. sử dụng mẫu:
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
Dù sao, tôi hy vọng rằng bạn nhận thức được rằng không phải DES hay 3DES được coi paritcularly an toàn ngày nay, có nhiều lựa chọn thay thế tốt hơn (AES ở nơi đầu tiên nếu bạn muốn gắn bó theo tiêu chuẩn, hoặc Twofish, Blowfish, vv ...)
Bạn có thể sử dụng M2Crypto trình bao bọc Python cho OpenSSL. Nó có lợi thế là nhanh (nhanh như OpenSSL), nhưng bất lợi của tài liệu bị hạn chế.
Dưới đây là ví dụ my answer-"How to 3DES encrypt in Python using the M2Crypto wrapper? "
with open(keyfile, 'rb') as f:
key = f.read()
encrypt = 1
cipher = Cipher(alg='des_ede3_ecb', key=key, op=encrypt, iv='\0'*16)
ciphertext = cipher.update(plaintext)
ciphertext += cipher.final()
Liên kết M2Crypto bạn đã chết. – BlackVegetable
- 1. Sử dụng OpenGL với Python
- 2. Sử dụng Python 3.1 với TextMate
- 3. Có thể sử dụng Python với php
- 4. Sử dụng email.HeaderParser với imaplib.fetch trong python?
- 5. Sử dụng ffmpeg với Python 2.7
- 6. Sử dụng python "với" tuyên bố với thử-trừ khối
- 7. Python mở rộng với - sử dụng siêu() Python 3 vs Python 2
- 8. Đối phó với nhiều phiên bản python khi file python phải sử dụng #/bin/env python
- 9. Sử dụng Thư viện ảnh Python với VirtualEnv trên Windows
- 10. Sử dụng MultipartPostHandler để POST dạng dữ liệu với Python
- 11. Sử dụng các phiên bản python khác nhau với virtualenvwrapper
- 12. Sử dụng PhantomJS với Selenium Webdriver và Python
- 13. Sử dụng csvreader đối với tệp được nén trong Python
- 14. cách sử dụng API Google Shortener với Python
- 15. Sử dụng bộ nhớ cao của Python với BeautifulSoup
- 16. Sử dụng eval của python() so với ast.literal_eval()?
- 17. Sử dụng một danh mục XML với lxml của Python?
- 18. Kết nối với APNS dành cho iPhone Sử dụng Python
- 19. Sử dụng Định dạng Chuỗi Python với Danh sách
- 20. Sử dụng Boto để kết nối với S3 bằng Python
- 21. Khi nào thì sử dụng "với" trong python
- 22. Làm thế nào để sử dụng win32 API với python?
- 23. Làm thế nào để sử dụng Emacs với Python
- 24. Tôi có thể sử dụng python với hình vẽ không?
- 25. Sử dụng dịch vụ OAuth Python với Google App Engine
- 26. Có thể sử dụng Clutter với Python 3 không?
- 27. Khi nào sử dụng class so với dict trong python?
- 28. Sử dụng Tiện ích mở rộng với Selenium (Python)
- 29. Làm thế nào để sử dụng Corba với Python
- 30. Sử dụng các mảng với các mảng khác trong Python
>>> print encStr \ Không – Ska
print "Mã hóa:% r" % d ---> tại sao không có ngoặc – CaTx
không thể concat byte để int ----> lỗi trong python 3 ??? – Mehrdad