标签: base32

随机数似乎不是随机的

我试图生成6个字符或更少的随机base32数字.这应该给出大约10亿种不同的组合.

我创建了一个程序来生成这些"随机"数字.但是,它似乎每40,000代平均产生一次重复.

当有超过十亿种不同的组合时,为什么这些"随机"数字经常重复?

这是我的代码:

static void Main(string[] args)
{
    int seed = Environment.TickCount;
    Random r = new Random(seed);

    Dictionary<int, int> resultDictionary = new Dictionary<int, int>();
    for (int x = 1; x <= 1000; x++)
    {
        Dictionary<string, int> dictionary = new Dictionary<string, int>();
        try
        {
            while (true)
            {
                int rand = r.Next(0, 1073741823);
                CrockfordBase32Encoding encoding = new CrockfordBase32Encoding();
                string encodedRand = encoding.Encode((ulong)rand, false);
                dictionary.Add(encodedRand, rand);
            }
        }
        catch (Exception)
        {
        }
        Console.WriteLine(string.Format("{0} - {1}", x, dictionary.Count));
        resultDictionary.Add(x, dictionary.Count);
        x++;
    }

    Console.WriteLine(); …
Run Code Online (Sandbox Code Playgroud)

c# random base32

45
推荐指数
3
解决办法
6020
查看次数

如果只有160位,为什么SHA-1哈希长40个字符?

问题的标题说明了一切.我一直在研究SHA-1和大多数地方,我看到它是40个十六进制字符长,对我来说是640bit.它只能用10个十六进制字符160bit = 20byte来表示.一个十六进制字符可以表示2个字节对​​吗?为什么它需要的时间是它的两倍?我的理解中缺少什么.

如果使用Base32或Base36,SHA-1甚至不能只有5个或更少的字符?

hash encoding sha1 hashcode base32

39
推荐指数
5
解决办法
5万
查看次数

Base32解码

我有一个base32字符串,我需要将其转换为字节数组.我在.NET框架中找到转换方法时遇到了麻烦.我可以找到base64的方法,但不能找到base32的方法.

Convert.FromBase64String - 像base32这样的东西是完美的.

在框架中是否有这样的方法或者我必须自己滚动?

.net c# base32

32
推荐指数
5
解决办法
4万
查看次数

小字符串的快速开源校验和

对于小字符串(20-500个字符),我需要快速校验和(尽可能快).

我需要源代码,而且必须很小!(最多约100 LOC)

如果它可以在Base32/64中生成字符串.(或类似的东西)它会是完美的.基本上校验和不能使用任何"坏"字符..你知道..通常(){} [].,;:/ + - \| 等等

澄清

它可能是强弱的,这无关紧要,因为它仅用于幕后目的.

它不需要包含原始字符串的所有数据,因为我只会与生成的校验和进行比较,我不期望任何类型的"解密".

javascript string base64 checksum base32

21
推荐指数
3
解决办法
2万
查看次数

在Java中将字符串编码为base32字符串

就像标题所说,我正在尝试将字符串"test"编码为Java中的base32字符串"ORSXG5A =".

我在网上搜索时发现的是从32位到字符串编码的类,但显然这不是我想要的.

对不起这个新手问题.

java base32

12
推荐指数
2
解决办法
2万
查看次数

编码一个数字,z-base-32的C#实现还是别的什么?

我需要编码/解码一个长达9位但通常长7位的整数.我想让它更容易沟通/记忆 - 它将通过电话,复制和粘贴,从卡/内存/标签键入,手写在标签上,一般滥用!

我希望使用基本32方案减少位数(同时添加校验和).我最赞成z-base-32(通过RFC4648实现),因为一些设计目标(例如手写)和字母表的选择(小写,置换以支持更容易阅读,写,说,并记住).但是,我找不到C#实现,我担心从现有的Python实现移植.

有人有C#实现吗?或者,是否有人可以使用一组测试用例(规范中的示例除外)来验证端口?

我对有关替代编码方案的建议持开放态度.

c# algorithm encoding base32

11
推荐指数
3
解决办法
9047
查看次数

什么是base32编码?

有关如何实现base32编码或base32编码规范的足够信息,但我不明白它是什么,我们为什么需要它以及主要应用程序在哪里.有人可以解释并提供有关使用情况的真实生活场景吗?谢谢.

crockford base32 维基百科base32

encoding base32

10
推荐指数
1
解决办法
1万
查看次数

TOTP Base32 与 Base64

我发现每个 TOTP 实现(甚至 RedHat 的 FreeOTP)都使用 Base32 编码/解码来生成秘密。为什么不使用 Base64,因为 Base32 使用了大约 20% 以上的空间,它的主要优点是,它更易于人类阅读?无论如何,它不会向用户显示。

虽然实现中的每条评论都表示其实现遵循RFC6238 / RFC4226,但我在 RFC 文档中找不到关于 Base32 的任何内容。

由于传输数据的安全性,将其转换为 Base32 或 Base64 显然是有意义的,但为什么不直接使用 Base64 呢?

java base64 one-time-password base32

9
推荐指数
1
解决办法
3130
查看次数

Crockford的Base32编码/解码的Java实现

我正在寻找在Java中实现Crockford的Base32编码/解码.具体来说,这意味着我可以在我的项目中使用Java库.或者,一些代码示例进行编码和解码.

java encoding base32

4
推荐指数
1
解决办法
2011
查看次数

加密可打印文本,因此结果仍然可打印(可以键入)

我想加密许可系统的一些信息,我希望结果能够由用户输入.

更新:此操作必须是可逆的(可解密的)例如,加密(ComputerID + ProductID) - >(任何可以键入的标准ASCII字符.理想情况下甚至可能只是AZ).

到目前为止,我所做的是将加密文本转换为HEX(因此它是0-F中的任何字符),但这会使字符数翻倍.

我正在使用VB6.

我想我会对每对(Input $(x)和Key $(x))进行一些操作,然后做一个MOD以使其保持在ascii值的范围内(可能是0-9-AZ)

有什么好的算法建议吗?

vb6 base64 encoding encode base32

3
推荐指数
1
解决办法
903
查看次数