我正在尝试构建一个 ASP.NET MVC 应用程序,它将使用 Thumbor 作为照片大小调整后端,但一直遇到安全问题。 Thumbor 使用 SHA1 HMAC 哈希作为基于 URL 的安全系统。因此,URL 可能如下所示:
http://thumbor-server/1234567890123456789012345678/300x200/smart/path/to/image.jpg
1234567890123456789012345678 是由 key 和 300...image.jpg 部分组成的 hmac...
无论如何,我可以创建 HMAC 值,或者至少我认为我可以,但是在生成 URL 时,Thumbor 建议使用 Python 中的 urlsafe_base64encode 函数。我已经尝试过 System.Convert.ToBase64String,但那不起作用,并且对字符串进行编码的 url 也不起作用。 “不工作”是指 Thumbor 告诉我 URL 格式错误。没有太多可去...
那么,有没有等价物呢?如果没有,人们将如何按照它的方式生成字符串?
最佳答案
我已经设法让这个工作,通过获取 Base64 字符串并将 +
字符替换为 -
并将 /
字符替换为_
。这似乎是 Python 执行其 urlsafe_b64encode
的方式。
关于C# 等效于 Python 的 urlsafe_b64encode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14173749/