【问题标题】:How to create small public/private keys using openssl and php?如何使用 openssl 和 php 创建小型公钥/私钥?
【发布时间】:2011-11-22 10:47:50
【问题描述】:

我需要创建一个公钥/私钥,但我不需要大密钥,我尝试使用以下代码:

<?php
$config = array('private_key_bits' => 128);
$res = openssl_pkey_new($config);
?>

但我收到此警告:

Warning: openssl_pkey_new(): private key length is too short; it needs to be at least 384 bits, not 64

我需要改变什么吗? (配置文件、模块等?)

【问题讨论】:

  • 不需要大键和需要小键是两个不同的东西。为什么不使用更大的密钥? :)
  • @deceze 我必须把它保存在一个 cookie 中 :-) 我需要一个小钥匙
  • 您是否将密钥用于需要加密(即需要保持安全)的内容?
  • @MD-Tech 当然,在 mysql 中我已经加密了数据(用户表),然后我有一个表,其中放置了所有登录的用户,在这个表中我保存了 ID 和密码(到让用户解密他的信息)但是我可以在这张桌子上放一个普通密码,所以我创建了一对私有/公共密钥并将该密码与公众加密,这样使用他的私人关键字的用户就可以解密它并获得原始密码密码来解密用户表上的信息。使用这个系统,我避免了直接在 php 文件中存储密钥来加密/解密的问题。
  • 问题是这种大小的密钥除了一小部分混淆之外不会提供任何安全性,因为密钥将在几分钟内被破解。如果您需要保持数据安全,那么该长度的密钥是没有意义的。我认为可能有更好的方法来实现您想要实现的目标,但在我提出解决方案之前,我必须先弄清楚您想要实现的目标是什么

标签: php openssl


【解决方案1】:

升级回答:

我不知道(我目前远离 Web 开发!)我查看了 cookie 的大小限制,每个 4kb,每个域最多可以创建 20 个,你应该有 1024 位密钥的空间即使您必须在 cookie 之间使用字典查找系统。

另外请确保使用 ssl 连接发送私钥,否则有人可以拦截私钥,您的所有工作都将是徒劳的

【讨论】:

    猜你喜欢
    • 2017-11-12
    • 2019-06-18
    • 2011-07-19
    • 2019-02-28
    • 2021-12-16
    • 1970-01-01
    • 1970-01-01
    • 2014-03-11
    • 1970-01-01
    相关资源
    最近更新 更多