Hashids解码时无法在.NET中工作

时间:2015-10-22 20:23:34

标签: c# asp.net .net hash hashids

我正在使用Hashids隐藏网址中的数据库ID。以下是我对Hashids的初始化:

public static Security.Hashids HashOps = new Security.Hashids("Sl212", 5);

Security是我的项目命名空间,我在其中复制了Hashids.cs文件。编码工作正常,但解码正在抛出IndexOutOfRangeException异常。这就是我解码的方式:

int fileID=HashOps.Decode(FileID)[0];

我在很多盐和没有盐的情况下尝试过它,但它一次又一次地抛出相同的异常。我正在使用文件中的原始代码。除了命名空间我什么都没改变。

请告诉我该怎么办?在尝试了12个小时后,我的思绪陷入了死胡同。

更新

我在Console app中运行的测试代码也抛出异常:

Hashids HashOps = new Hashids();
string hash = HashOps.Encode(212);
Console.WriteLine("Encoded: " + hash);
Console.WriteLine("Decoded: " + HashOps.Decode(hash)[0]);

1 个答案:

答案 0 :(得分:3)

最后,在@Heinzi的帮助下,我能够发现真正发生的事情。问题出在我的网络应用程序的URL检测系统上。它检测URL并在DIV中加载内容。该系统使完整的URL更低。因此,更改包含大写字母的哈希。我只是在检测到ID时使用了实际的URL而不是降低了。