Tag: hash

不使用VBA或macros的SHA256 / SHA512散列,基于Excel公式的函数

这是2017年,任何需要使用散列的人都应该避免像MD5那样的“破坏”,如果安全性很重要的话。 有没有人发现或创build了一种方法来在Excel中执行更安全的SHA256或SHA512散列,而不使用VBA或macros? 之前做过的一个壮观的例子是在3年半以前用MD5(如在这个SO中所看到的: MD5中的Hash函数在Excel中不使用VBA )。 避免VBA /macros的原因:与移动设备(如iOS的Excel)兼容。 注意:原始的堆栈溢出post有一个死链接的成功答案,这里是一个新的链接供参考: https : //tzamtzis.gr/2017/web-analytics/excel-function-md5-hashing-without-vba /

比较具有相同内容的XLSX文件之间的MD5哈希值

我们有一个内部Web应用程序,它接受来自用户的不同格式的文件,以便将大量数据导入到我们的系统中。 我们实施的最新升级之一是添加一种方法来检测文件是否先前已上传,如果是,则向用户显示警告和选项以重新提交文件或取消上载。 为了达到这个目的,我们计算上传文件的MD5 ,并将其与包含以前上传的文件信息的数据库表进行比较,以确定它是否是重复的。 如果MD5匹配,则显示警告,否则将新的文件信息插入表中进行文件处理。 以下是用于生成MD5哈希的C#代码: private static string GetHash(byte[] input) { using (MD5 md5 = MD5.Create()) { byte[] data = md5.ComputeHash(input); StringBuilder bob = new StringBuilder(); for (int i = 0; i < data.Length; i++) bob.Append(data[i].ToString("x2").ToUpper()); return bob.ToString(); } } 一切工作正常,还有一个例外。 用户可以为这个过程上传.xlsx文件,不幸的是,这种文件types也会在文件内容中存储文件的元数据。 (通过将.xlsx文件的扩展名更改为.zip并提取内容,可以很容易地看到这一点(见下文)。) 因此, .xlsx文件的MD5哈希值随每个后续保存而改变,即使文件内容相同(只需打开并保存文件,不进行任何修改将刷新元数据并导致不同的MD5哈希) 。 在这种情况下,具有相同logging但在不同时间或由不同用户创build的文件将滑过重复文件检测并被处理。 我的问题:有没有一种方法来确定.xlsx文件的内容是否与前一个文件的内容相匹配而不存储文件内容? 换句话说:有没有办法生成一个.xlsx文件内容的MD5散列?

在VBA上计算SHA512(Excel 2003)

我试图计算VBA(Excel 2003)上的string的散列,但是当我调用ComputeHash ,它会引发一个Invalid argument/procedure call错误。 DLL参考:mscorlib v4.0,系统v4.0 MSDN参考: http : //msdn.microsoft.com/en-us/library/system.security.cryptography.sha512managed.aspx Sub Main() Dim instance As New SHA512Managed Dim data() As Byte data = StringToByte("mymsg") Dim result() As Byte instance.ComputeHash(data) 'Throws runtime error' MsgBox (ByteToString(result)) End Sub Function StringToByte(ByVal s) Dim b() As Byte b = s 'Assign Unicode string to bytes.' StringToByte = b […]

Excel VBA的密码散列函数

我需要一个用Excel VBA编写的函数,它将使用SHA-1等标准algorithm对密码进行哈希处理。 一些简单的界面,如: Public Function CreateHash(Value As String) As String … End Function 该function需要在安装了Excel 2003的XP工作站上工作,否则不能使用第三方组件。 它可以引用和使用XP提供的DLL,比如CryptoAPI。 有谁知道一个样本来实现这个散列函数?