话接前文
【加密社】私钥碰撞、单地址查询、行情监控推送、靓号生成https://blog.csdn.net/qq_16712551/article/details/145930375
现在在之前的基础上写以太坊地址靓号生成的功能,具体功能有啥用,我就不细说了
--------------------------------
这是我的UI设计,凑合着看,实用就行
对前后缀的处理
/// <summary>
/// 前缀
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void textBoxPrefix_TextChanged(object sender, EventArgs e)
{
// 使用正则表达式匹配允许的字符(数字和A到F的大写或小写字母)
Regex regex = new Regex("^[0-9a-fA-F]*$");
// 检查文本是否与模式匹配
if (!regex.IsMatch(textBoxPrefix.Text))
{
// 提示用户只允许输入特定字符
MessageBox.Show("请输入数值(0-9)或A-F之间的字母", "输入错误", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
HandleReplacement();
TextChanged();
}
这里可以看到,我特意限制了A-F 0-9
这是由于
以太坊地址是由十六进制字符组成的40位字符串,所以每个位置有16种可能的字符(0-9, A-F)
在这个基础上再去生成地址,基本原理我解释下,
如果你希望找到一个以"AB"开头的地址,由于每个位置有16种可能性(0-9, A-F),所以第一个字符为"A"的概率是1/16,第二个字符为"B"的概率也是1/16。
这样,找到这样一个地址的难度就是(16^40) / (16^38) = 16^2 = 256。这意味着,平均来说,你需要尝试256次才能找到一个符合条件的地址。
我会把难度,时间,进度条实时显示在界面上,尽量可视化。
我会用加密安全的伪随机数生成器 (CSPRNG) 生成以太坊地址。
密钥库文件使用 AES-128-CTR 密码通过 PBKDF2-SHA256 派生函数进行加密,具有 65536 次哈希轮次。
另外,重要的是,代码后期我会开源在github上