本文整理匯總了Python中Crypto.Cipher.DES3.MODE_ECB屬性的典型用法代碼示例。如果您正苦於以下問題:Python DES3.MODE_ECB屬性的具體用法?Python DES3.MODE_ECB怎麽用?Python DES3.MODE_ECB使用的例子?那麽, 這裏精選的屬性代碼示例或許可以為您提供幫助。您也可以進一步了解該屬性所在類Crypto.Cipher.DES3
的用法示例。
在下文中一共展示了DES3.MODE_ECB屬性的13個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: encryption_oracle_aes
# 需要導入模塊: from Crypto.Cipher import DES3 [as 別名]
# 或者: from Crypto.Cipher.DES3 import MODE_ECB [as 別名]
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)
示例2: encryption_oracle_des
# 需要導入模塊: from Crypto.Cipher import DES3 [as 別名]
# 或者: from Crypto.Cipher.DES3 import MODE_ECB [as 別名]
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)
示例3: SignWith3Des
# 需要導入模塊: from Crypto.Cipher import DES3 [as 別名]
# 或者: from Crypto.Cipher.DES3 import MODE_ECB [as 別名]
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
示例4: runTest
# 需要導入模塊: from Crypto.Cipher import DES3 [as 別名]
# 或者: from Crypto.Cipher.DES3 import MODE_ECB [as 別名]
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)
示例5: aes
# 需要導入模塊: from Crypto.Cipher import DES3 [as 別名]
# 或者: from Crypto.Cipher.DES3 import MODE_ECB [as 別名]
def aes(self):
return AES.new(self.key, AES.MODE_ECB) # 初始化加密器
示例6: setup_cipher
# 需要導入模塊: from Crypto.Cipher import DES3 [as 別名]
# 或者: from Crypto.Cipher.DES3 import MODE_ECB [as 別名]
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!')
示例7: _encrypt
# 需要導入模塊: from Crypto.Cipher import DES3 [as 別名]
# 或者: from Crypto.Cipher.DES3 import MODE_ECB [as 別名]
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
示例8: des_encrypt
# 需要導入模塊: from Crypto.Cipher import DES3 [as 別名]
# 或者: from Crypto.Cipher.DES3 import MODE_ECB [as 別名]
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
示例9: des_decrypt
# 需要導入模塊: from Crypto.Cipher import DES3 [as 別名]
# 或者: from Crypto.Cipher.DES3 import MODE_ECB [as 別名]
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
示例10: triple_des_encrypt
# 需要導入模塊: from Crypto.Cipher import DES3 [as 別名]
# 或者: from Crypto.Cipher.DES3 import MODE_ECB [as 別名]
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
示例11: triple_des_decrypt
# 需要導入模塊: from Crypto.Cipher import DES3 [as 別名]
# 或者: from Crypto.Cipher.DES3 import MODE_ECB [as 別名]
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
示例12: blowfish_encrypt
# 需要導入模塊: from Crypto.Cipher import DES3 [as 別名]
# 或者: from Crypto.Cipher.DES3 import MODE_ECB [as 別名]
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
示例13: populate_transform_menu
# 需要導入模塊: from Crypto.Cipher import DES3 [as 別名]
# 或者: from Crypto.Cipher.DES3 import MODE_ECB [as 別名]
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))