我一直在做一些测试这个工具: http://crypto.hurlant.com/demo/CryptoDemo.swf并一直试图以匹配Mirc的河豚+河豚获得的结果(从曾经被认为是fish.secure.us V1 0.30),。 我不能为我的生活查找模式下,它是用...没有匹配..有谁知道它采用什么模式?
Answer 1:
它只是使用ECB模式,但base64编码是在奇数的方式进行 - 的密文的32位的每个块独立地编码成6个BASE64字符。
Answer 2:
对于IRC河豚插件似乎使用MODE_ECB(电子码本),这可能是最安全的河豚算法。
对于加密,他们打破明文分成8字节的块(河豚ECB块大小)。 然后,他们分别加密每个8字节的块,并采取每个加密块的输出,并存储块,它代入式(2)的4字节长材,和base64encode每个长,它们填充到6个BASE64字符长度。
对于解密,这个过程是相反的,但因为它是有点混乱我还会描述。 采取密文字节12,各6字节表示作为一个长(“> L”)进行解码,以便你现在有8个字节,其中你然后传递给河豚解密算法中。
import struct, string
from Crypto.Cipher import Blowfish
def blow(key, plaintext):
if not isinstance(plaintext, str):
raise TypeError('Plaintext must be str')
else:
if len(plaintext) % 8 != 0:
plaintext += "\0" * (8-(len(plaintext)%8))
cipher = Blowfish.new(key, Blowfish.MODE_ECB)
ciphertext = ''
charset = list('./' + string.digits + string.ascii_lowercase + string.ascii_uppercase)
for j in range(0,len(plaintext),8):
block = cipher.encrypt(plaintext[j:j+8])
(low, high) = struct.unpack('>LL', block)
while high:
ciphertext += charset[high%64]
high //= 64
if len(ciphertext) % 6 != 0:
ciphertext += charset[0] * (6-len(ciphertext)%6)
while low:
ciphertext += charset[low%64]
low //= 64
if len(ciphertext) % 6 != 0:
ciphertext += charset[0] * (6-len(ciphertext)%6)
assert len(ciphertext) % 12 == 0
return ciphertext
def unblow(key, ciphertext):
if not isinstance(ciphertext, str):
raise TypeError('Ciphertext must be str')
else:
assert len(ciphertext) % 12 == 0
cipher = Blowfish.new(key, Blowfish.MODE_ECB)
plaintext = bytearray()
charset = list('./' + string.digits + string.ascii_lowercase + string.ascii_uppercase)
for j in range(0,len(ciphertext),12):
high = 0
for k in range(6):
high |= charset.index(ciphertext[j+k]) << (k*6)
low = 0
for k in range(6):
low |= charset.index(ciphertext[j+k+6]) << (k*6)
plaintext += cipher.decrypt(struct.pack('>LL', low, high))
return plaintext.decode('utf8').rstrip("\0")
Answer 3:
IRC不支持任何方式进行加密,一切都被转移,除了如果您在使用SSL的纯文本。 河豚是将被翻译(上mIRC的)邮件的加密算法,或者你使用的任何客户端。
如果没有河豚信息将被发送到服务器:
PRIVMSG #Channel :YourMessage
随着河豚信息将被发送到服务器:
PRIVMSG #Channel :w8e09w8e09q8eqiwoqweqweqweqwueqwehwqheqywgBlowFishEncryption
文章来源: IRC blowfish encryption mode?