You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现SHA256哈希值无限/多次变更并连续输出1000个不同哈希值

实现连续生成1000个不同的SHA256哈希值

要实现每次生成不同的SHA256哈希并连续输出1000次,核心逻辑很简单:SHA256的输出完全由输入决定,相同输入必然得到相同哈希,所以只要每次给哈希函数传入不一样的输入,就能得到不同的哈希结果。

我们可以复用你提供的挖矿代码里的nonce(计数器)思路,简化逻辑去掉前缀零的判断,只需要循环生成不同输入即可。以下是完整的实现代码:

import hashlib
from hashlib import sha256

def SHA256(text):
    return sha256(text.encode("ascii")).hexdigest()

def generate_1000_hashes(block_number, transaction, previous_hash):
    # 循环1000次,用递增的nonce保证输入唯一
    for nonce in range(1000):
        # 组合唯一的输入文本:块号+交易信息+前序哈希+当前计数器值
        input_text = f"{block_number}{transaction}{previous_hash}{nonce}"
        current_hash = SHA256(input_text)
        print(f"第{nonce+1}个哈希值: {current_hash}")
    print("\n已成功生成1000个不同的SHA256哈希值")

# 示例调用,你可以自定义这些参数值
if __name__ == "__main__":
    sample_block_num = 1
    sample_transaction = "Alice transfers 0.5 BTC to Bob"
    sample_prev_hash = "00000000a0b65992d3b303b2023a049f19d1e923a0f37c6d0f64f6b0f70f80f9"
    generate_1000_hashes(sample_block_num, sample_transaction, sample_prev_hash)

关键说明:

  • 这里用nonce从0到999递增,确保每次的input_text都不一样,因此生成的哈希必然不同(SHA256哈希碰撞的概率可以忽略不计)。
  • 如果你想要无限生成哈希,只需要把for循环改成while循环即可,示例如下:
def generate_infinite_hashes(block_number, transaction, previous_hash):
    nonce = 0
    while True:
        input_text = f"{block_number}{transaction}{previous_hash}{nonce}"
        current_hash = SHA256(input_text)
        print(f"第{nonce+1}个哈希值: {current_hash}")
        nonce += 1
        # 可选:添加延时避免输出过快,需要先导入time模块
        # import time
        # time.sleep(0.1)

其他可选的输入唯一化方式:

除了递增的nonce,你还可以用以下方式保证输入唯一:

  • 时间戳:str(time.time()),每次调用都会生成不同的字符串
  • 随机数:str(random.randint(0, 10**18)),随机性更强
  • 计数器+时间戳的组合:进一步降低碰撞概率(虽然已经极低)

内容的提问来源于stack exchange,提问作者Alexander

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.27 19:42:28