当前位置: 首页 > 知识库问答 >
问题:

在不同编程语言之间传递加密数据的最佳实践

祁博雅
2023-03-14

我读过,如果您想使用一种编程语言加密一个字符串,然后使用另一种编程语言解密该字符串,那么为了确保兼容性,最好在加密之前进行一些转换。我读过,加密字符串的字节数组而不是字符串本身是最佳实践。此外,我读到某些加密算法期望每个加密数据包的大小是固定长度。如果最后一个要加密的数据包不是所需的大小,那么加密将失败。因此,对首先转换为固定长度(如十六进制)的数据进行加密似乎是一个好主意。

我正在尝试确定无论使用哪种加密算法,通常都有用的最佳实践。为了在跨不同语言和平台加密和解密数据时最大限度地实现兼容性,我希望对以下步骤进行评论:

加密:

    null
    null

共有1个答案

林劲
2023-03-14

实际上,加密的最佳实践是使用高级加密框架,在使用原语时,您可能会做错很多事情。如果不使用高级加密框架,mfanto很好地提到了您需要知道的重要内容。我猜想,如果你想要最大限度地实现编程语言之间的兼容性,那是因为你需要其他开发人员与加密进行交互操作,然后他们也需要学习使用加密的底层细节。

所以我对高层框架的建议是使用Google Keyczar框架,因为它可以为您处理算法、密钥管理、填充、iv、认证标记、有线格式等细节。它适用于许多不同的编程Java、Python、C++、C#和Go。看看吧。

我编写了C#版本,所以我可以告诉您,它在幕后使用的原语在大多数其他编程语言中也可以广泛使用,并且它使用json这样的标准来进行密钥管理和存储。

 类似资料:
  • 我想把我的数据传递给其他的viewcontroller,但我做不到。我的密码在下面。ViewControllers的屏幕截图在这里。当用户写出他们的名字和密码时,我想传递另一个用户的数据,但他们之间还有一个viewcontroller。我认为这是一个问题,但我可以移除这个额外的视图控制器,所以我想了解如何才能把这些数据传递给其他的一个? 第一个viewcontroller的代码 第二个viewco

  • 我有两个viewController,分别命名为viewController和我想获取数据并使用委托将其发送到secondViewController。另外,我在secondViewController中有一个数组,当每个数据来自VC1时,它必须存储数据,如; segue1,第一个数据来了->arrayElements{firstData}segue2,第二个数据来了->arrayElements

  • 问题内容: 我的用户数据库中有一些我希望进行加密的数据。要求时,大多数数据将需要解密,但是也有一些密码可以保持加密(过去我们会使用 pwdcompare, 但我相信现在已经过时了)。 我已经按照这里的步骤进行操作,所以现在我已经成功地加密了我的数据。 我不了解的是在运行时打开主密钥以加密/解密数据的正确方法。如果我想使用存储过程来检索加密的数据,该如何打开主密钥?我是否使用存储的proc参数传递主

  • 假设我们有一个带有s的表示一行注释。这些笔记存储在某个地方(本地数据库、网络等),每次调用时,都会根据存储的数据绘制正确数量的s。 现在,假设用户想要删除注释,解析特定 返回到其存储实体的最佳方式是什么? 目前,我知道的唯一方法是使用< code >视图。标签,并有一些管理器将它转换成数据实体,但它看起来相当混乱。 还有其他选择吗?

  • 问题内容: 我想在程序执行其他操作时监听服务器,但是从服务器收到消息后,我想对其进行解释。 我知道线程,但是不能完全确定它是如何工作的。如果我有一个线程正在监听服务器,如何将数据传递到主线程进行解释?主线程将数据发送到服务器的最佳方法是什么?同步修饰符的用途是什么? 问题答案: 如果我有一个线程正在监听服务器,如何将数据传递到主线程进行解释?主线程将数据发送到服务器的最佳方法是什么? 我会为此使用

  • 假设我有一个大约有10个字段的应用程序类。在其他一些实用程序类中,我有下面两种方法之一。在这两种方法中,哪一种最好?是传递整个应用程序对象更好,还是只传递实用方法所需的对象更好?请解释原因。