将 RSA 加密数据存储为十六进制

发布于 2025-01-08 07:48:04 字数 576 浏览 0 评论 0原文

我正在使用 OpenSSL::PKey::RSA 使用私钥加密/解密数据字符串。我将加密数据作为字符串存储在表的列中。我已经使用 Base64.encode64Base64.decode64 使此实现正常工作。但是,我不想将加密数据存储为基数 64,我想将其存储为字符串中的十六进制。

我目前正在使用以下内容来存储加密数据:

    encrypted_data = pk.private_encrypt(plain_data).unpack('H*').first

这会导致 encrypted_Data 等于如下所示的字符串,该字符串可以轻松存储在我的数据库中。

   d70db8c36d6ccbadd1cca1263ff140df24e0112f636ac9ea92c28f27e443496c

我的问题在于将此十六进制字符串更改回解密数据所需的二进制字符串。我尝试了几种不同的方法,但似乎都不起作用。

解密这个十六进制字符串的最佳/最简单方法是什么?

I am using OpenSSL::PKey::RSA to encrypt/decrypt a string of data using a private key. I am storing the encrypted data in a column in a table as a string. I have gotten this implementation to work no problem using Base64.encode64 and Base64.decode64. However, I do not want to store the encrypted data as base 64, I would like to store it as hexadecimal in a string.

I'm currently using the following to store the encrypted data:

    encrypted_data = pk.private_encrypt(plain_data).unpack('H*').first

This results in encrypted_Data equaling a string like that bellow, which easily stores in my database.

   d70db8c36d6ccbadd1cca1263ff140df24e0112f636ac9ea92c28f27e443496c

My problem has come in the changing of this hexadecimal string back to the binary string that is needed to decrypt the data. I've tried several different approaches and none seem to work.

What is the best/easiest way to decrypt this hexadecimal string?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

自由范儿 2025-01-15 07:48:04

unpack 的反面是 pack,这是您要将此十六进制字符串恢复为二进制的东西。像这样:

[encrypted_data].pack('H*')

Pack 是数组上的函数,而不是字符串,因此请确保传递 unpack('H*') 结果相同的数组,否则输出将不同。

The opposite of unpack is pack, which is what you're looking for to get this hex string back to binary. Like so:

[encrypted_data].pack('H*')

Pack is a function on array, not string, so be sure you're passing the same array that unpack('H*') results in or else the output will not be the same.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文