Python Crypto.Cipher.DES3.MODE_ECB Examples
The following are 16
code examples of Crypto.Cipher.DES3.MODE_ECB().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
Crypto.Cipher.DES3
, or try the search function
.
Example #1
Source File: encryptionencoding.py From chepy with GNU General Public License v3.0 | 12 votes |
def triple_des_encrypt( self, key: str, iv: str = "0000000000000000", mode: str = "CBC", hex_key: bool = False, hex_iv: bool = True, ): """Encrypt raw state with Triple DES Triple DES applies DES three times to each block to increase key size. Key: Triple DES uses a key length of 24 bytes (192 bits).<br>DES uses a key length of 8 bytes (64 bits).<br><br>You can generate a password-based key using one of the KDF operations. IV: The Initialization Vector should be 8 bytes long. If not entered, it will default to 8 null bytes. Padding: In CBC and ECB mode, PKCS#7 padding will be used. Args: key (str): Required. The secret key iv (str, optional): IV for certain modes only. Defaults to '0000000000000000'. mode (str, optional): Encryption mode. Defaults to 'CBC'. hex_key (bool, optional): If the secret key is a hex string. Defaults to False. hex_iv (bool, optional): If the IV is a hex string. Defaults to True. Returns: Chepy: The Chepy object. Examples: >>> Chepy("some data").triple_des_encrypt("super secret password !!", mode="ECB").o b"f8b27a0d8c837edc8fb00ea85f502fb4" """ self.__check_mode(mode) key, iv = self._convert_key(key, iv, hex_key, hex_iv) if mode == "CBC": cipher = DES3.new(key, mode=DES3.MODE_CBC, iv=iv) self.state = cipher.encrypt(pad(self._convert_to_bytes(), 8)) return self elif mode == "ECB": cipher = DES3.new(key, mode=DES3.MODE_ECB) self.state = cipher.encrypt(pad(self._convert_to_bytes(), 8)) return self elif mode == "CTR": cipher = DES3.new(key, mode=DES3.MODE_CTR, nonce=b"") self.state = cipher.encrypt(self._convert_to_bytes()) return self elif mode == "OFB": cipher = DES3.new(key, mode=DES3.MODE_OFB, iv=iv) self.state = cipher.encrypt(self._convert_to_bytes()) return self
Example #2
Source File: encryptionencoding.py From chepy with GNU General Public License v3.0 | 6 votes |
def des_encrypt( self, key: str, iv: str = "0000000000000000", mode: str = "CBC", hex_key: bool = False, hex_iv: bool = True, ): """Encrypt raw state with DES DES is a previously dominant algorithm for encryption, and was published as an official U.S. Federal Information Processing Standard (FIPS). It is now considered to be insecure due to its small key size. DES uses a key length of 8 bytes (64 bits).<br>Triple DES uses a key length of 24 bytes. You can generate a password-based key using one of the KDF operations. The Initialization Vector should be 8 bytes long. If not entered, it will default to 8 null bytes. Padding: In CBC and ECB mode, PKCS#7 padding will be used. Args: key (str): Required. The secret key iv (str, optional): IV for certain modes only. Defaults to '0000000000000000'. mode (str, optional): Encryption mode. Defaults to 'CBC'. hex_key (bool, optional): If the secret key is a hex string. Defaults to False. hex_iv (bool, optional): If the IV is a hex string. Defaults to True. Returns: Chepy: The Chepy object. Examples: >>> Chepy("some data").des_encrypt("70617373776f7264", hex_key=True).o b"1ee5cb52954b211d1acd6e79c598baac" To encrypt using a differnt mode >>> Chepy("some data").des_encrypt("password", mode="CTR").o b"0b7399049b0267d93d" """ self.__check_mode(mode) key, iv = self._convert_key(key, iv, hex_key, hex_iv) if mode == "CBC": cipher = DES.new(key, mode=DES.MODE_CBC, iv=iv) self.state = cipher.encrypt(pad(self._convert_to_bytes(), 8)) return self elif mode == "ECB": cipher = DES.new(key, mode=DES.MODE_ECB) self.state = cipher.encrypt(pad(self._convert_to_bytes(), 8)) return self elif mode == "CTR": cipher = DES.new(key, mode=DES.MODE_CTR, nonce=b"") self.state = cipher.encrypt(self._convert_to_bytes()) return self elif mode == "OFB": cipher = DES.new(key, mode=DES.MODE_OFB, iv=iv) self.state = cipher.encrypt(self._convert_to_bytes()) return self
Example #3
Source File: test_ecb.py From CryptoAttacks with MIT License | 6 votes |
def encryption_oracle_aes(payload): global constant, prefix_len, suffix_len, secret if secret: if constant: payload = random_bytes(prefix_len) + payload + secret else: payload = random_bytes(random.randint(1, 50)) + payload + secret else: if constant: payload = random_bytes(prefix_len) + payload + random_bytes(suffix_len) else: payload = random_bytes(random.randint(1, 50)) + payload + random_bytes(random.randint(1, 50)) payload = add_padding(payload, AES.block_size) cipher = AES.new(key_AES, AES.MODE_ECB) return cipher.encrypt(payload)
Example #4
Source File: test_ecb.py From CryptoAttacks with MIT License | 6 votes |
def encryption_oracle_des(payload): global constant, prefix_len, suffix_len, secret if secret: if constant: payload = random_bytes(prefix_len) + payload + secret else: payload = random_bytes(random.randint(1, 50)) + payload + secret else: if constant: payload = random_bytes(prefix_len) + payload + random_bytes(suffix_len) else: payload = random_bytes(random.randint(1, 50)) + payload + random_bytes(random.randint(1, 50)) payload = add_padding(payload, DES3.block_size) cipher = DES3.new(key_DES3, DES3.MODE_ECB) return cipher.encrypt(payload)
Example #5
Source File: Util.py From PyMicroChat with GNU General Public License v3.0 | 6 votes |
def SignWith3Des(src): # 首先对字符串取MD5 raw_buf = hashlib.md5(src.encode()).digest() # 对16字节的md5做bcd2ascii bcd_to_ascii = bytearray(32) for i in range(len(raw_buf)): bcd_to_ascii[2*i] = raw_buf[i]>>4 bcd_to_ascii[2*i+1] = raw_buf[i] & 0xf # hex_to_bin转换加密key key = bytes.fromhex('3ECA2F6FFA6D4952ABBACA5A7B067D23') # 对32字节的bcd_to_ascii做Triple DES加密(3DES/ECB/NoPadding) des3 = DES3.new(key, DES3.MODE_ECB) enc_bytes = des3.encrypt(bcd_to_ascii) # bin_to_hex得到最终加密结果 enc_buf = ''.join(["%02X" % x for x in enc_bytes]).strip() return enc_buf # 根据svrid查询client_msg_id
Example #6
Source File: test_DES3.py From FODI with GNU General Public License v3.0 | 6 votes |
def runTest(self): sub_key1 = bchr(1) * 8 sub_key2 = bchr(255) * 8 # K1 == K2 self.assertRaises(ValueError, DES3.new, sub_key1 * 2 + sub_key2, DES3.MODE_ECB) # K2 == K3 self.assertRaises(ValueError, DES3.new, sub_key1 + sub_key2 * 2, DES3.MODE_ECB) # K1 == K2 == K3 self.assertRaises(ValueError, DES3.new, sub_key1 *3, DES3.MODE_ECB) # K2 == K3 (parity is ignored) self.assertRaises(ValueError, DES3.new, sub_key1 + sub_key2 + strxor_c(sub_key2, 0x1), DES3.MODE_ECB)
Example #7
Source File: test_DES3.py From android_universal with MIT License | 6 votes |
def runTest(self): sub_key1 = bchr(1) * 8 sub_key2 = bchr(255) * 8 # K1 == K2 self.assertRaises(ValueError, DES3.new, sub_key1 * 2 + sub_key2, DES3.MODE_ECB) # K2 == K3 self.assertRaises(ValueError, DES3.new, sub_key1 + sub_key2 * 2, DES3.MODE_ECB) # K1 == K2 == K3 self.assertRaises(ValueError, DES3.new, sub_key1 *3, DES3.MODE_ECB) # K2 == K3 (parity is ignored) self.assertRaises(ValueError, DES3.new, sub_key1 + sub_key2 + strxor_c(sub_key2, 0x1), DES3.MODE_ECB)
Example #8
Source File: RSA-AES-MD5-DES-DES3-MD5-SHA-HMAC.py From R-A-M-D-D3-S-M-H with MIT License | 5 votes |
def aes(self): return AES.new(self.key, AES.MODE_ECB) # 初始化加密器
Example #9
Source File: encryptionencoding.py From chepy with GNU General Public License v3.0 | 5 votes |
def des_decrypt( self, key: str, iv: str = "0000000000000000", mode: str = "CBC", hex_key: bool = False, hex_iv: bool = True, ): """Decrypt raw state encrypted with DES. DES is a previously dominant algorithm for encryption, and was published as an official U.S. Federal Information Processing Standard (FIPS). It is now considered to be insecure due to its small key size. DES uses a key length of 8 bytes (64 bits).<br>Triple DES uses a key length of 24 bytes. You can generate a password-based key using one of the KDF operations. The Initialization Vector should be 8 bytes long. If not entered, it will default to 8 null bytes. Padding: In CBC and ECB mode, PKCS#7 padding will be used. Args: key (str): Required. The secret key iv (str, optional): IV for certain modes only. Defaults to '0000000000000000'. mode (str, optional): Encryption mode. Defaults to 'CBC'. hex_key (bool, optional): If the secret key is a hex string. Defaults to False. hex_iv (bool, optional): If the IV is a hex string. Defaults to True. Returns: Chepy: The Chepy object. Examples: >>> Chepy("1ee5cb52954b211d1acd6e79c598baac").hex_to_str().des_decrypt("password").o b"some data" """ self.__check_mode(mode) key, iv = self._convert_key(key, iv, hex_key, hex_iv) if mode == "CBC": cipher = DES.new(key, mode=DES.MODE_CBC, iv=iv) self.state = unpad(cipher.decrypt(self._convert_to_bytes()), 8) return self elif mode == "ECB": cipher = DES.new(key, mode=DES.MODE_ECB) self.state = unpad(cipher.decrypt(self._convert_to_bytes()), 8) return self elif mode == "CTR": cipher = DES.new(key, mode=DES.MODE_CTR, nonce=b"") self.state = cipher.decrypt(self._convert_to_bytes()) return self elif mode == "OFB": cipher = DES.new(key, mode=DES.MODE_OFB, iv=iv) self.state = cipher.decrypt(self._convert_to_bytes()) return self
Example #10
Source File: encryptionencoding.py From chepy with GNU General Public License v3.0 | 5 votes |
def triple_des_decrypt( self, key: str, iv: str = "0000000000000000", mode: str = "CBC", hex_key: bool = False, hex_iv: bool = True, ): """Decrypt raw state encrypted with DES. Triple DES applies DES three times to each block to increase key size. Key: Triple DES uses a key length of 24 bytes (192 bits).<br>DES uses a key length of 8 bytes (64 bits).<br><br>You can generate a password-based key using one of the KDF operations. IV: The Initialization Vector should be 8 bytes long. If not entered, it will default to 8 null bytes. Padding: In CBC and ECB mode, PKCS#7 padding will be used. Args: key (str): Required. The secret key iv (str, optional): IV for certain modes only. Defaults to '0000000000000000'. mode (str, optional): Encryption mode. Defaults to 'CBC'. hex_key (bool, optional): If the secret key is a hex string. Defaults to False. hex_iv (bool, optional): If the IV is a hex string. Defaults to True. Returns: Chepy: The Chepy object. Examples: >>> c = Chepy("f8b27a0d8c837edce87dd13a1ab41f96") >>> c.hex_to_str() >>> c.triple_des_decrypt("super secret password !!") >>> c.o b"some data" """ self.__check_mode(mode) key, iv = self._convert_key(key, iv, hex_key, hex_iv) if mode == "CBC": cipher = DES3.new(key, mode=DES3.MODE_CBC, iv=iv) self.state = unpad(cipher.decrypt(self._convert_to_bytes()), 8) return self elif mode == "ECB": cipher = DES3.new(key, mode=DES3.MODE_ECB) self.state = unpad(cipher.decrypt(self._convert_to_bytes()), 8) return self elif mode == "CTR": cipher = DES3.new(key, mode=DES3.MODE_CTR, nonce=b"") self.state = cipher.decrypt(self._convert_to_bytes()) return self elif mode == "OFB": cipher = DES3.new(key, mode=DES3.MODE_OFB, iv=iv) self.state = cipher.decrypt(self._convert_to_bytes()) return self
Example #11
Source File: encryptionencoding.py From chepy with GNU General Public License v3.0 | 5 votes |
def blowfish_encrypt( self, key: str, iv: str = "0000000000000000", mode: str = "CBC", hex_key: bool = False, hex_iv: bool = True, ): """Encrypt raw state with Blowfish Blowfish is a symmetric-key block cipher designed in 1993 by Bruce Schneier and included in a large number of cipher suites and encryption products. AES now receives more attention. IV: The Initialization Vector should be 8 bytes long. Args: key (str): Required. The secret key iv (str, optional): IV for certain modes only. Defaults to '0000000000000000'. mode (str, optional): Encryption mode. Defaults to 'CBC'. hex_key (bool, optional): If the secret key is a hex string. Defaults to False. hex_iv (bool, optional): If the IV is a hex string. Defaults to True. Returns: Chepy: The Chepy object. Examples: >>> Chepy("some data").blowfish_encrypt("password", mode="ECB").o b"d9b0a79853f139603951bff96c3d0dd5" """ self.__check_mode(mode) key, iv = self._convert_key(key, iv, hex_key, hex_iv) if mode == "CBC": cipher = Blowfish.new(key, mode=Blowfish.MODE_CBC, iv=iv) self.state = cipher.encrypt(pad(self._convert_to_bytes(), 8)) return self elif mode == "ECB": cipher = Blowfish.new(key, mode=Blowfish.MODE_ECB) self.state = cipher.encrypt(pad(self._convert_to_bytes(), 8)) return self elif mode == "CTR": cipher = Blowfish.new(key, mode=Blowfish.MODE_CTR, nonce=b"") self.state = cipher.encrypt(self._convert_to_bytes()) return self elif mode == "OFB": cipher = Blowfish.new(key, mode=Blowfish.MODE_OFB, iv=iv) self.state = cipher.encrypt(self._convert_to_bytes()) return self
Example #12
Source File: TDES.py From msldap with MIT License | 5 votes |
def setup_cipher(self): if self.mode == cipherMODE.ECB: self._cipher = _pyCryptoDES3.new(self.key, _pyCryptoDES3.MODE_ECB) elif self.mode == cipherMODE.CBC: self._cipher = _pyCryptoDES3.new(self.key, _pyCryptoDES3.MODE_CBC, self.IV) else: raise Exception('Unknown cipher mode!')
Example #13
Source File: Transform.py From deprecated-binaryninja-python with GNU General Public License v2.0 | 5 votes |
def populate_transform_menu(menu, obj, action_table): aes_menu = menu.addMenu("AES") aes_ecb_menu = aes_menu.addMenu("ECB mode") aes_cbc_menu = aes_menu.addMenu("CBC mode") action_table[aes_ecb_menu.addAction("Encrypt")] = lambda: obj.transform_with_key(lambda data, key: aes_encrypt_transform(data, key, AES.MODE_ECB, "")) action_table[aes_ecb_menu.addAction("Decrypt")] = lambda: obj.transform_with_key(lambda data, key: aes_decrypt_transform(data, key, AES.MODE_ECB, "")) action_table[aes_cbc_menu.addAction("Encrypt")] = lambda: obj.transform_with_key_and_iv(lambda data, key, iv: aes_encrypt_transform(data, key, AES.MODE_CBC, iv)) action_table[aes_cbc_menu.addAction("Decrypt")] = lambda: obj.transform_with_key_and_iv(lambda data, key, iv: aes_decrypt_transform(data, key, AES.MODE_CBC, iv)) blowfish_menu = menu.addMenu("Blowfish") blowfish_ecb_menu = blowfish_menu.addMenu("ECB mode") blowfish_cbc_menu = blowfish_menu.addMenu("CBC mode") action_table[blowfish_ecb_menu.addAction("Encrypt")] = lambda: obj.transform_with_key(lambda data, key: blowfish_encrypt_transform(data, key, Blowfish.MODE_ECB, "")) action_table[blowfish_ecb_menu.addAction("Decrypt")] = lambda: obj.transform_with_key(lambda data, key: blowfish_decrypt_transform(data, key, Blowfish.MODE_ECB, "")) action_table[blowfish_cbc_menu.addAction("Encrypt")] = lambda: obj.transform_with_key_and_iv(lambda data, key, iv: blowfish_encrypt_transform(data, key, Blowfish.MODE_CBC, iv)) action_table[blowfish_cbc_menu.addAction("Decrypt")] = lambda: obj.transform_with_key_and_iv(lambda data, key, iv: blowfish_decrypt_transform(data, key, Blowfish.MODE_CBC, iv)) cast_menu = menu.addMenu("CAST") cast_ecb_menu = cast_menu.addMenu("ECB mode") cast_cbc_menu = cast_menu.addMenu("CBC mode") action_table[cast_ecb_menu.addAction("Encrypt")] = lambda: obj.transform_with_key(lambda data, key: cast_encrypt_transform(data, key, CAST.MODE_ECB, "")) action_table[cast_ecb_menu.addAction("Decrypt")] = lambda: obj.transform_with_key(lambda data, key: cast_decrypt_transform(data, key, CAST.MODE_ECB, "")) action_table[cast_cbc_menu.addAction("Encrypt")] = lambda: obj.transform_with_key_and_iv(lambda data, key, iv: cast_encrypt_transform(data, key, CAST.MODE_CBC, iv)) action_table[cast_cbc_menu.addAction("Decrypt")] = lambda: obj.transform_with_key_and_iv(lambda data, key, iv: cast_decrypt_transform(data, key, CAST.MODE_CBC, iv)) des_menu = menu.addMenu("DES") des_ecb_menu = des_menu.addMenu("ECB mode") des_cbc_menu = des_menu.addMenu("CBC mode") action_table[des_ecb_menu.addAction("Encrypt")] = lambda: obj.transform_with_key(lambda data, key: des_encrypt_transform(data, key, DES.MODE_ECB, "")) action_table[des_ecb_menu.addAction("Decrypt")] = lambda: obj.transform_with_key(lambda data, key: des_decrypt_transform(data, key, DES.MODE_ECB, "")) action_table[des_cbc_menu.addAction("Encrypt")] = lambda: obj.transform_with_key_and_iv(lambda data, key, iv: des_encrypt_transform(data, key, DES.MODE_CBC, iv)) action_table[des_cbc_menu.addAction("Decrypt")] = lambda: obj.transform_with_key_and_iv(lambda data, key, iv: des_decrypt_transform(data, key, DES.MODE_CBC, iv)) des3_menu = menu.addMenu("Triple DES") des3_ecb_menu = des3_menu.addMenu("ECB mode") des3_cbc_menu = des3_menu.addMenu("CBC mode") action_table[des3_ecb_menu.addAction("Encrypt")] = lambda: obj.transform_with_key(lambda data, key: des3_encrypt_transform(data, key, DES3.MODE_ECB, "")) action_table[des3_ecb_menu.addAction("Decrypt")] = lambda: obj.transform_with_key(lambda data, key: des3_decrypt_transform(data, key, DES3.MODE_ECB, "")) action_table[des3_cbc_menu.addAction("Encrypt")] = lambda: obj.transform_with_key_and_iv(lambda data, key, iv: des3_encrypt_transform(data, key, DES3.MODE_CBC, iv)) action_table[des3_cbc_menu.addAction("Decrypt")] = lambda: obj.transform_with_key_and_iv(lambda data, key, iv: des3_decrypt_transform(data, key, DES3.MODE_CBC, iv)) rc2_menu = menu.addMenu("RC2") rc2_ecb_menu = rc2_menu.addMenu("ECB mode") rc2_cbc_menu = rc2_menu.addMenu("CBC mode") action_table[rc2_ecb_menu.addAction("Encrypt")] = lambda: obj.transform_with_key(lambda data, key: rc2_encrypt_transform(data, key, ARC2.MODE_ECB, "")) action_table[rc2_ecb_menu.addAction("Decrypt")] = lambda: obj.transform_with_key(lambda data, key: rc2_decrypt_transform(data, key, ARC2.MODE_ECB, "")) action_table[rc2_cbc_menu.addAction("Encrypt")] = lambda: obj.transform_with_key_and_iv(lambda data, key, iv: rc2_encrypt_transform(data, key, ARC2.MODE_CBC, iv)) action_table[rc2_cbc_menu.addAction("Decrypt")] = lambda: obj.transform_with_key_and_iv(lambda data, key, iv: rc2_decrypt_transform(data, key, ARC2.MODE_CBC, iv)) action_table[menu.addAction("RC4")] = lambda: obj.transform_with_key(lambda data, key: rc4_transform(data, key)) action_table[menu.addAction("XOR")] = lambda: obj.transform_with_key(lambda data, key: xor_transform(data, key))
Example #14
Source File: test_DES3.py From FODI with GNU General Public License v3.0 | 5 votes |
def runTest(self): # Encrypt/Decrypt data and test output parameter cipher = DES3.new(b'4'*8 + b'G'*8 + b'T'*8, DES3.MODE_ECB) pt = b'5' * 16 ct = cipher.encrypt(pt) output = bytearray(16) res = cipher.encrypt(pt, output=output) self.assertEqual(ct, output) self.assertEqual(res, None) res = cipher.decrypt(ct, output=output) self.assertEqual(pt, output) self.assertEqual(res, None) import sys if sys.version[:3] != '2.6': output = memoryview(bytearray(16)) cipher.encrypt(pt, output=output) self.assertEqual(ct, output) cipher.decrypt(ct, output=output) self.assertEqual(pt, output) self.assertRaises(TypeError, cipher.encrypt, pt, output=b'0'*16) self.assertRaises(TypeError, cipher.decrypt, ct, output=b'0'*16) shorter_output = bytearray(7) self.assertRaises(ValueError, cipher.encrypt, pt, output=shorter_output) self.assertRaises(ValueError, cipher.decrypt, ct, output=shorter_output)
Example #15
Source File: rave_base.py From rave-python with MIT License | 5 votes |
def _encrypt(self, plainText): """ This is the encryption function.\n Parameters include:\n plainText (string) -- This is the text you wish to encrypt """ blockSize = 8 padDiff = blockSize - (len(plainText) % blockSize) key = self.__getEncryptionKey() cipher = DES3.new(key, DES3.MODE_ECB) plainText = "{}{}".format(plainText, "".join(chr(padDiff) * padDiff)) # cipher.encrypt - the C function that powers this doesn't accept plain string, rather it accepts byte strings, hence the need for the conversion below test = plainText.encode('utf-8') encrypted = base64.b64encode(cipher.encrypt(test)).decode("utf-8") return encrypted
Example #16
Source File: test_DES3.py From android_universal with MIT License | 5 votes |
def runTest(self): # Encrypt/Decrypt data and test output parameter cipher = DES3.new(b'4'*8 + b'G'*8 + b'T'*8, DES3.MODE_ECB) pt = b'5' * 16 ct = cipher.encrypt(pt) output = bytearray(16) res = cipher.encrypt(pt, output=output) self.assertEqual(ct, output) self.assertEqual(res, None) res = cipher.decrypt(ct, output=output) self.assertEqual(pt, output) self.assertEqual(res, None) import sys if sys.version[:3] != '2.6': output = memoryview(bytearray(16)) cipher.encrypt(pt, output=output) self.assertEqual(ct, output) cipher.decrypt(ct, output=output) self.assertEqual(pt, output) self.assertRaises(TypeError, cipher.encrypt, pt, output=b'0'*16) self.assertRaises(TypeError, cipher.decrypt, ct, output=b'0'*16) shorter_output = bytearray(7) self.assertRaises(ValueError, cipher.encrypt, pt, output=shorter_output) self.assertRaises(ValueError, cipher.decrypt, ct, output=shorter_output)