gpt4 book ai didi

c# - 从字符串生成固定大小的字节序列

转载 作者:太空宇宙 更新时间:2023-11-03 21:53:41 26 4
gpt4 key购买 nike

我想从长度可变的字符串中创建一个长度固定的字节序列。存档此文件的最佳方法是什么。所有字节应尽可能不同。

代码用于我自己的研究,没有任何生产性。

这是我生成字节的第一种方法:

static byte[] GenerateBytes(string password, Int32 strength)
{
Byte[] result = new byte[strength];
Byte[] pwBytes = Encoding.ASCII.GetBytes(password);
Int32 prime = GetLowerPrime(pwBytes.Length);

// Offset count to avoid values
Int32 count = prime;
Int32 sum = 0;
for (int i = 0; i < result.Length; i++) {
sum += (result[i] = pwBytes[(count++ % pwBytes.Length)]);
}

count += prime;
Int32 pcount = prime;
for (int i = 0; i < result.Length * 7; i++) {
result[(i % result.Length)] ^= (Byte)(pwBytes[(count++ % pwBytes.Length)] ^ ((pcount += pwBytes[(count % pwBytes.Length)]) % 255));
}

return result;
}

并生成一些具有 256/128/64 个生成字节的样本并计算唯一字节数:

Password "Short":                170  103  60
Password "LongerX": 173 101 55
Password "Really Long": 169 100 57
Password "Unbelivable Safe!0§$": 162 101 56
Password "MCV": 119 113 61
Password "AAA": 50 51 50
Password "BBB": 67 67 52
Password "AAAAAA": 48 48 48

我试图稍微改变主选择器,这改进了短键的生成,但对长键有部分影响。我还跟踪了一些字节的统计数据。生成并使用每个字节值 9 到 30 次。

您如何看待结果?我怎样才能改进字节的生成?

最佳答案

您似乎在重新发明轮子。如果您需要从密码中生成 key ,请使用散列函数,或者最好的方法 - 一种标准的基于密码的 key 派生函数。搜索 PBKDF2。

关于c# - 从字符串生成固定大小的字节序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13293595/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com