Estoy tratando de implementar el cifrado aes-128-cbc en Kotin / Java. Desafortunadamente, los resultados de cifrado difieren de los resultados de OpenSSL utilizando los mismos argumentos.
Argumentos:
Data: [[[1532347727425, 6481]]]
Key: f70559cb976123807855fd9081f17760
IV: b7e5daacd367e143d20a0b536507a6d6
Implementación de Kotlin:
const val AES_TRANSFORMATION = "AES/CBC/PKCS5Padding"
val cipher = Cipher.getInstance(AES_TRANSFORMATION)
val keySpec = SecretKeySpec(aesKey.hexToByteArray(), "AES")
val ivSpec = IvParameterSpec(iv.hexToByteArray())
cipher.init(Cipher.ENCRYPT_MODE, keySpec, ivSpec)
val result = cipher.doFinal(data.toByteArray())
return String(Base64Helper().encode(result))
OpenSSL-CMD:
echo [[[1532347727425, 6481]]] | openssl aes-128-cbc -d -K f70559cb976123807855fd9081f17760 -iv b7e5daacd367e143d20a0b536507a6d6 -base64
Resultados:
Kotlin/Android: fHcK3EeXEzSYtIa8PbhXkANwv2sU/qgktUnabzgE9HI=
OpenSSL: 7L1XLM/5ihCNRryiSZ8RMlPSeqsHDXa785dJujS7c/M=
Descifrar los resultados con OpenSSL produce el siguiente error:
bad decrypt
140621119981208:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:evp_enc.c:529:
Actualización: Padding cambiado a PKCS5 - misma salida.
Deberías usar el AES/CBC/PKCS5Padding
cifrado
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras