asp.net - 如何用数学方法缩短网址

标签 asp.net sql encryption url-shortener

我正在研究使用算法将长度为 150 到 250 个字符的 url 缩短/加密到最多 12 个字符的可能性。最初我怀疑这是否可能,但我想利用 StackOverflow 的伟大思想:)

该算法应该是可以用经典的 asp、sql、c#、vb、foxpro 或其他语言编写的算法。

如果没有以数据库为中心的方法,这是否可能?

我正在阅读here CFB 模式下的 AES 将执行流密码,并且输出长度将与输入长度相同。有什么办法可以进一步缩短吗?

最佳答案

一如既往,答案是“视情况而定”。有一种数学理论谈论一堆数据的“信息内容”。如果您的数据最初是这样的字符串:

lleAgByD2rREjzqj85g68207NsjspdINfPRNvU9udgWw7y4qXh0EQLSy0yEi2

那么信息内容比你的字符串看起来要大得多:

one zero one one zero one zero zero one zero one one zero one

即使字符串实际上长度相同。使用压缩,您可以减少表达相同含义所需的位数,但只能减少到一定程度。这一点取决于原始消息的信息内容。

在我看来,您的 150 到 250 个字符的字符串似乎不太可能包含如此少的信息内容,以至于可以有效地将其压缩到 12 个字符。您可能必须将较长的数据存储在数据库中,并为每个数据项分配一个较短的“键”。

要进一步阅读,可以从维基百科关于 Information theory 的文章开始。 .

关于asp.net - 如何用数学方法缩短网址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3569528/

相关文章:

encryption - 如何加密/etc/vpn/example.cfg文件中的vpnc Xauth密码?

asp.net - 我可以跳过 ASP.NET 菜单控件中的节点吗?

javascript - 验证仅在后跟字母时才允许空格字符

c# - 如何使用 Aspose 6.4 将 PowerPoint 文件转换为 PDF?

mysql - mySQL 的 sql 结构最大数量是多少?

Java密码加密

javascript - 加密文本每次都改变 -Msrcrypto

c# - ASP.net 中的浏览器滚动条(如何设置)

mysql - 如何在 jOOQ 的同一张表上写 LEFT OUTER JOIN?

mysql - 获取组的最小值的记录