- 4
- 0
- 约1.28万字
- 约 12页
- 2023-06-14 发布于湖北
- 举报
数据安全课程报告
二零二零年
课程报告题目:区块链日记程序
要求:1.程序可以输入日记内容
2.需要将日记内容进行加密
3.能够将加密数据写入区块链
4.能够读取链上加密数据
5.读取的加密数据进行解密
6.解密后再程序中显示
模块规划:
1、创建一个具体的区块数据模型
public struct Block
{
/// summary
/// 区块位置
/// /summary
public int Index { get; set; }
/// summary
/// 区块生成时间戳
/// /summary
public string TimeStamp { get; set; }
/// summary
/// 心率数值
/// /summary
public int BPM { get; set; }
/// summary
/// 区块 SHA-256 散列值
/// /summary
public string Hash { get; set; }
/// summary
/// 前一个区块 SHA-256 散列值
/// /summary
public string PrevHash { get; set; }
}
2、之后新建一个 BlockGenerator 静态类用于管理区块链,并且使用一个 List 保存区块链数据。
public static class BlockGenerator
{
public static ListBlock _blockChain = new ListBlock();
}
3、使用散列算法,确保每一个块的 PrevHash 值等于前一个块中的 Hash 值,这样就以正确的块顺序构建出链:
4.散列与生成区块。使用散列是因为可以使用极少的控件生成每一个区块的唯一标识,而且可以维持整个区块链的完整性,通过每个区块存储的前一个链的散列值,我们就可以确保区块链当中每一个区块的正确性,任何针对区块的无效更改都会导致散列值的改变,也就破坏了区块链。
那么就在 BlockGenerator 当中添加一个函数用于计算 Block 的
public static string CalculateHash(Block block)
{
string calculationStr = ${block.Index}{block.TimeStamp}{block.BPM}{block.PrevHash};
SHA256 sha256Generator = SHA256.Create();
byte[] sha256HashBytes = sha256Generator.ComputeHash(Encoding.UTF8.GetBytes(calculationStr));
StringBuilder sha256StrBuilder = new StringBuilder();
foreach (byte @byte in sha256HashBytes)
{
sha256StrBuilder.Append(@byte.ToString(x2));
}
return sha256StrBuilder.ToString();
}
这里的 CalculateHash 函数接收一个 Block 实例,通过该实例当中的 Index、TimeStamp、BPM、PrevHash 的值来计算出当前块的 SHA256 Hash 值,之后我们就可以来编写一个生成块的函数:
这个函数需要接收前一个块对象的值,用于新区块的 Index 递增以及 新的 SHA256 Hash 计算。
这里掺入了一个 CalculateCurrentTimeUTC 函数,该函数主要是用于将 DateTime.Now 时间转换为 UTC 时间,如下:
/// summary
/// 计算当前时间的 UTC 表示格式
/// /summary
/// returnsUTC 时间字符串/returns
public static string CalculateCurrentTimeUTC()
{
DateTime startTime = new DateTime(1970, 1, 1, 0, 0, 0, 0);
DateTime nowTime = DateTime.Now;
long unixTime = (long)Math.Round((nowTime
您可能关注的文档
- 《创新思维与问题解决——五个步骤创造性解决问题》.doc
- 提高高危患者预防措施落实率医院护理品管圈QCC成果汇报PPT(完整版本易修改).pptx
- 醛的性质PPT课件.pptx
- 乳癌改良根治术护理查房.pptx
- 可编程医用电气系统(PEMS)自查表及检查文件清单(2023.docx
- 一平台机考《会计学概论》复习资料三.docx
- 第九单元《数学广角—推理》教材解析-人教版数学二年级下册.doc
- 教科版小学六年级下册科学期末考试卷带答案(完整版) (1).docx
- 中国浙江省地图PPT模板.pptx
- 少年宫英语口语社团教案-完整版.doc
- 云南省涧南彝族自治县2026届中考三模数学试题含解析.doc
- 重庆市巫溪中学2026届中考三模生物试题含解析.doc
- 2026届甘肃省张掖市高台县重点名校中考数学模拟精编试卷含解析.doc
- 2026届重庆一中学中考生物最后冲刺浓缩精华卷含解析.doc
- 2026届江西省萍乡市安源区中考生物模试卷含解析.doc
- 2026届山东省曲阜师范大附属实验校中考生物考前最后一卷含解析.doc
- 山西省运城市垣曲县重点中学2026届中考生物考前最后一卷含解析.doc
- 湖北省谷城县达标名校2026届中考生物押题卷含解析.doc
- 2026届河南省三门峡市义马二中中考生物考试模拟冲刺卷含解析.doc
- 树立和践行正确政绩观重点纠治十种偏差问题对照查摆清单(100条).docx
原创力文档

文档评论(0)