El cifrado Java / Kotlin AES-128-CBC produce un resultado diferente al de OpenSSL

usuario10126644

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.

Strelok

Deberías usar el AES/CBC/PKCS5Paddingcifrado

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

Editado en
0

Déjame decir algunas palabras

0Comentarios
Iniciar sesiónRevisión de participación posterior

Artículos relacionados

Equivalente de Java de un cifrado OpenSSL AES CBC

Descifre en trozos un objeto cifrado AES 128 CBC

Cómo implementar el cifrado AES de Java de 256 bits con CBC

¿Cómo descifrar un archivo en Java cifrado con el comando openssl usando AES?

Cifrado: con vb.net obtengo un resultado diferente al de php

¿Por qué el cifrado RSA en Java produce un texto cifrado de diferente longitud que C #?

Cifrado AES Resultado diferente Java y Python

el uso de Supplier en CompletableFuture produce un resultado diferente al de lambda

Problema de conexión SSL JDK7 Ignorando el conjunto de cifrado no compatible: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256

El cifrado openssl -aes-128-ecb no coincide con el cifrado Python Crypto.Cipher AES

El cifrado AES sin IV en PHP y JS da un resultado diferente

El resultado xor de JavaScript es diferente al de Java

Java/Kotlin AES-128-CBC encryption produces different result than OpenSSL

java AES / CBC / PKCS5PADDING en php (AES-256-CBC) dando como resultado un resultado diferente

Cifrado OpenSSL AES 128bit CBC

Descifrado AES_128_CBC OpenSSL

Cifrado / descifrado AES (aes-cbc-256) con salida esperada de openssl truncada

Данные для шифрования данных команды openssl не соответствуют коду C EVP_aes_128_cbc

El comando openssl cifrar los datos no coincide con el código C de EVP_aes_128_cbc

¿Cuál es el IV predeterminado al cifrar con el cifrado aes_256_cbc?

Resultado de cifrado AES CTR diferente de Java y openssl C

Java AES CBC con Inline Secure Random IV: ¿produce el mismo texto cifrado?

El resultado del cifrado HMAC es diferente al de la prueba JUnit y Spring

Utilice PHP para obtener el mismo cifrado AES-128-CBC que Java

El cifrado RSA en java y python da un resultado de cifrado diferente

El descifrado de OpenSSL EVP_aes_128_cbc obtuvo un resultado inesperado

Problemas al intentar usar AES-CBC de BouncyCastle para descifrar el texto cifrado

El uso de geom_boxplot produce un resultado diferente al de boxplot base ()

¿Es necesario que el IV de AES-128-cbc sea aleatorio durante el cifrado y el descifrado?

TOP Lista

CalienteEtiquetas

Archivo