个人财务管理小程序项目问答

发布时间:2026/7/5 14:28:27
个人财务管理小程序项目问答 项目介绍我的项目主要研究电子发票存证系统的数据完整性保护问题。电子发票通常以PDF或图片形式存在,如果文件被修改,比如金额、日期、发票号码发生变化,普通用户很难判断真伪。因此我们希望设计一种能够快速验证电子发票是否被篡改的存证方案。我主要负责存证模型设计和验证模块实现。首先,对上传的电子发票计算SHA-256摘要,并将每张发票按照时间顺序连接形成哈希链,使得任何一条记录发生修改都会影响后续所有哈希值,从而保证数据不可篡改。为了提高批量验证效率,我们进一步采用Merkle Tree组织多张发票,只需要提供Merkle Proof即可验证某张发票是否属于该批次,而无需重新计算所有数据。此外,我们使用HMAC对存证信息进行签名,防止攻击者伪造新的存证记录。最终实现了电子发票上传、存证、完整性验证以及真伪检测等功能。为什么不用MD5,而要用SHA-256MD5目前已经存在碰撞攻击,可以构造不同的数据得到相同摘要,因此不能满足安全要求。SHA-256输出256位摘要,目前没有现实可行的碰撞攻击,安全性明显更高,因此适合作为电子存证的摘要算法。什么是哈希碰撞?两个不同的明文经过哈希运算得到相同的哈希值,就叫哈希碰撞