当前位置: 首页 > 面试题库 >

Java等效于C ++加密

钱宇
2023-03-14
问题内容

我有以下用于加密的c ++代码片段:

EVP_CIPHER_CTX ctx;
const EVP_CIPHER * cipher = EVP_des_ede3_cbc();
unsigned char iv[EVP_MAX_IV_LENGTH];
unsigned char key[EVP_MAX_KEY_LENGTH];
String seed;

_config->get_value("crypto_seed", &seed); // uses the seed value from pimp config.

if (seed.is_empty())
{
    return false;
}

EVP_BytesToKey(cipher, EVP_sha1(),
        (unsigned char *) 0, // no salt
        reinterpret_cast<unsigned char *>(const_cast<char *>(seed.chars())), seed.length(),
        1, // hash passphrase just once.
        key, iv);

EVP_CIPHER_CTX_init(&ctx);
EVP_CipherInit_ex(&ctx, cipher, (ENGINE *) 0, key,
        iv,
        1); // encrypt

Java中的c ++加密等效于什么?

我看到有des算法,然后我看到sha1

这与openssl加密有关。但不知道什么是等效的。本质上,我想要与c ++代码生成的输出相同的输出。

我问什么是等效的EVP_CIPHER_CTX或在这里使用的加密名称是什么,所以我可以从那里得到它。

编辑:不要求任何人将代码转换为Java,而只是要求执行相同操作的相应程序包或类。


问题答案:

您要转换的代码使用openssl库。它使用初始向量执行三重DES加密。您需要了解的第一件事就是它在做什么(最好是为什么)。

不幸的是,尽管O’Reilley的书《 使用OpenSSL的网络安全》要
好得多(尽管有点过时了),但是openssl文档并不是十分详尽(请参阅此处)。
__

一旦知道需要做什么,就可以使用标准的javax.crypto包在Java中对其进行编码,就不会有太大的困难。



 类似资料:
  • 问题内容: 我正在开发Java程序,我确实需要能够以一定的频率和持续时间播放声音,类似于c#方法System.Beep,我知道如何在C#中使用它,但是我找不到用Java做到这一点的一种方法。是否有等效的方法或另一种方法? 问题答案: 我认为没有办法在便携式2 Java 中用“哔”声播放音乐1。您将需要使用我认为的API …除非找到可以为您简化事情的第三方库。 如果您想走这条路,那么此页面可能会给您

  • 问题内容: 我是一名普通的C#开发人员,但有时我会使用Java开发应用程序。我想知道是否有Java等效于C#async / await?简单来说,java相当于什么: 问题答案: 不,在Java中-甚至在v5之前的C#中,都没有等效的异步/等待方式。 在后台构建状态机是一项相当复杂的语言功能。 Java中对异步/并发的 语言 支持相对较少,但是该软件包包含许多与此相关的有用 类 。(不完全等同于任

  • 问题内容: 我有以下用Java编写的代码。我需要与此等效的C#。 问题答案: 这里的C#代码等效于Java。

  • 问题内容: 我想将Java中的类转换为C#,大部分更改已经完成,但是我不确定这部分。我想转换以下代码行: 我已经试过了: 但是它不能正常工作,因为GetBytes()期望翻倍。我不确定将其转换为双精度是否可以解决问题,所以我想在这里询问。 问题答案: 根据您的编码,您可以执行以下操作: 有关参考,请参见http://msdn.microsoft.com/zh- cn/library/ds4kkd5

  • 问题内容: 我已经通过两个“.class”的解释(读1,2),但我努力理解“.class”的属性的作用。 我刚开始使用Java,但是使用C#进行编程已有一段时间。C#中是否有与此.class属性类似的功能?它可以帮助我理解这是什么。 问题答案: 它是C#中的typeof,您的第二个链接对其进行了更好的说明。

  • 我已经通读了“.class”的两个解释(1,2),但我很难理解“.class”属性的作用。 我刚开始使用Java,但已经用C#编程一段时间了。在C#中有没有类似于这个。class属性的函数?也许能帮我理解这是什么。