Go - Расшифровка пароля, закодированного twofish
Я использую code.google.com/p/go.crypto/twofish и хочу расшифровать пароль, полученный из базы данных. Пароль был зашифрован PHP и закодирован base64. В Go я декодирую с помощью base64, конвертирую в [] байт, и я пытался расшифровать его, но что-то пошло не так. Мое возвращение пусто. Это мой код:
func TwofishDecrypt(key, text []byte) ([]byte, error) {
block, err := twofish.NewCipher(key)
if err != nil {
return nil, err
}
if len(text) < twofish.BlockSize {
return nil, errors.New("ciphertext too short")
}
iv := text[:twofish.BlockSize]
text = text[twofish.BlockSize:]
cfb := cipher.NewCFBDecrypter(block, iv)
cfb.XORKeyStream(text, text)
data, err := base64.StdEncoding.DecodeString(string(text))
if err != nil {
return nil, err
}
return data, nil
}