不使用VBA的Excel中的MD5哈希函数

use*_*935 9 excel md5 excel-formula

我需要一个函数,它将在Excel中获取整个单元格值,并将值转换为新单元格中的MD5哈希等效值.excel中是否有一个公式可以做到这一点?我需要解决方案而不使用VBA.可能吗?

Tao*_*que 29

我这样做了 在这里,您可以在没有VBA的纯Excel 下载MD5.仅限Office 2013.

https://tzamtzis.gr/2017/web-analytics/excel-function-md5-hashing-without-vba/ https://tzamtzis.gr/tzamtziswp/wp-content/uploads/2017/05/MD5.xlsx

办公室2013配备了像位操作方便功能BITAND(),BITOR(),BITXOR(),BITR[L]SHIFT().我认为在技术上可以在以前版本的Office中实现MD5,但它将完全是地狱,因为你必须将值转换为二进制,然后将其转换为字符串,然后进行一些字符替换与算术加法/减法等混合等.添加到这个15位最大数字精度(这意味着你将很难处理16位二进制值).

我的工作簿可以处理长达1024个ASCII字符的字符串.这是为了减小文件大小(已经是185 kb).如果需要处理更长的消息,可以将计算块添加到表的底部(单个计算块由64行组成).但我认为这足以证明纯Excel中的MD5并不是一个好主意.

  • 通过一系列的upvotes,看起来你有一个可行的解决方案但是为了这个网站的长寿,并且不依赖于外部限制的外部参考,你能否发布适当的表达作为你答案的一部分? (7认同)
  • 你能用github或gist或者其他东西发帖吗?我不相信下载链接. (2认同)

小智 3

如果没有 VBA,则可以使用 Web 服务公式来调用返回 md5sum 的 Web 服务。

解释

电子表格样本

这个网络服务是我开发的,因为互联网上的所有服务都需要 POST 方法,而 Excel 只能执行 GET 请求。它是免费服务托管的,我不知道它可以使用多久。

Web服务源代码: https: //github.com/btafarelo/md5sum