数据安全课程报告二零二零年课程报告题目:区块链日记程序要求:1
程序可以输入日记内容 2
需要将日记内容进行加密3
能够将加密数据写入区块链4
能够读取链上加密数据5
读取的加密数据进行解密6
解密后再程序中显示模块规划:1、创建一个具体的区块数据模型public struct Block{ /// /// 区块位置 /// public int Index { get; set; } /// /// 区块生成时间戳 /// public string TimeStamp { get; set; } /// /// 心率数值 /// public int BPM { get; set; } /// /// 区块 SHA-256 散列值 /// public string Hash { get; set; } /// /// 前一个区块 SHA-256 散列值 /// public string PrevHash { get; set; }}2、之后新建一个 BlockGenerator 静态类用于管理区块链,并且使用一个 List 保存区块链数据
public static class BlockGenerator{ public static List _blockChain = new List();}3、使用散列算法,确保每一个块的 PrevHash 值等于前一个块中的 Hash 值,这样就以正确的块顺序构建出链:4
散列与生成区块
使用散列是因为可以使用极少的控件生成每一个区块的唯一标识,而且可以维持整个区块链的完整性,通过每个区块存储的前一个链的散列值,我们就可以确保区块链当中每一个区块的正确性,任何针对区块的无效更改都会导致散列值的改变,也就破坏了区块链
那么就在 BlockGenerator 当中添加一个函数用于计算 Block 的 public static