这里使用了哪个加密库

时间:2015-10-17 15:04:34

标签: java encryption

我有 settings.ini 文件,其中包含以下文字 -

[Settings]
IP=LF5ITzfFWttFqp1JwS3yig==
DATABASE=3Oulto+YrEerz3//yLacbEYGlcue8+kv41dAyqHxxKI=
USER=mEjikdSuE2+78JsA7atxhw==
PASSWORD=kXnsw31pVdtj+LU9vZ7qPQ==

我知道JAVA应用程序会读取此配置并通过解密来处理它。请任何人都可以帮我找出 JAVA 可用于解密此类文本或用于此类加密的库。

1 个答案:

答案 0 :(得分:3)

那里没有很多信息。

  • 数据是base64编码的(可以通过使用的字母识别和最后的==填充识别),但它似乎在下面加密,因为它解码为看似随机的二进制数据。
  • " IP"," USER"," PASSWORD"字段长度为16个字节,这表明我们正在查看具有128位块大小的对称密码,并且它使用固定的IV并且没有消息完整性检查。 (具有IV块或MAC块的64位密码也是可能的,但不太可能,因为这将要求明文最多为8个字节;而对于用户名和密码为8个字节则不合理或者更少,有人使用整数表示法来表示IP地址而不是点分十进制?)
  • "数据库"字段长度为32个字节,这与具有固定IV且无完整性检查的128位分组密码的假设一致。

128位分组密码很可能是AES。没有完整性检查的固定IV(这是一种不安全的加密实践)建议使用ECB模式。 (从技术上讲,ECB模式根本不使用IV。)但获取密钥的唯一方法是检查使用此数据的软件。如果你反汇编它,你应该能够获得密钥并确认加密的执行方式。

对于要使用的软件,有各种Java加密库可以解密AES-ECB。尝试查看javax.crypto类。或者Bouncycastle图书馆。