- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我需要一个加密随机字符串作为我的 Web 应用程序中的 session 标识符。这是我当前使用 libsodium
的实现:
char session_id[81];
sprintf(session_id, "%"
PRIx32
"%"
PRIx32
"%"
PRIx32
"%"
PRIx32
"%"
PRIx32
"%"
PRIx32
"%"
PRIx32
"%"
PRIx32,
randombytes_random(), randombytes_random(), randombytes_random(), randombytes_random(),
randombytes_random(), randombytes_random(), randombytes_random(), randombytes_random());
生成的字符串示例如下:
36b95095192b4b3999804c95605aee06bd3381e4197cdfa5230a37425a863d40
我认为这是最明显的方式。这个问题是大部分键空间未被使用:即使我们忽略大小写,也有 36 个字母数字字符,但只有 16 个(0-9
,A-E
,和来自 0X
前缀的潜在 X
)将出现在结果字符串中。我如何通过使用更多的 key 空间来改进当前的方法?
转换应该尽可能高效,但另一方面我希望保留大部分随机性。请注意,如果该操作过于广泛,我不希望保留所有熵。相反,我在结果字符串的长度、性能和熵量之间寻求平衡。
我已经在我的项目中使用 libsodium
来实现其他功能,我想坚持使用它。除非你有充分的理由,否则请避免推荐另一个库。
最佳答案
正如在评论和事件中提到的,考虑到您的约束(存储在 HTTP cookie 中),似乎 Base64是最好的解决方案。
关于c - 有效地将随机字节转换为字符串而不会损失太多熵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51550068/
我们有一个 WPF 应用程序,允许用户下载加密内容,并且我们希望提供离线解密该内容的功能。我的想法是下载 key 并使用 DPAPI 存储它们,但我在使用熵参数时遇到了问题。 是否有任何方法可以生成熵
在 php.ini 的 session 部分,有一个名为 session.entropy_length 的指令。 我知道它用于使 session ID 的生成“更加随机”。 它如何使 session
在 php.ini 的 session 部分,有一个名为 session.entropy_length 的指令。 我知道它用于使 session ID 的生成“更加随机”。 它如何使 session
我使用决策树算法来解决二元分类问题,目标是最大限度地减少分类的误报(最大化阳性预测值)(诊断工具的成本非常高) 。 有没有办法在基尼/熵分割标准中引入权重来惩罚误报错误分类? Here例如,修改后的基
我想检查我的 std::random_device 实现是否具有非零熵(即非确定性),使用 std::random_device::entropy() 函数。然而,根据至cppreference.co
我在 tensorflow_decision_forests 文档 ( https://github.com/tensorflow/decision-forests ) ( https://www.t
我是一名优秀的程序员,十分优秀!