编辑:我需要生成一个基于行的id的7个字符串

时间:2010-05-12 19:31:27

标签: code-generation

编辑:我需要生成一个基于行ID的7个字符串。因此,知道图像的id和密钥,我应该得到生成的字符串。

字符串必须包含从“a”到“z”的字符和从0到9的数字。

我有一个包含这样照片的目录

DIR / P3 / I2 / S21 / thumb.jpg

生成的字符串是p3i2s21,然后用于计算图像的路径。

编辑: 目前即时使用图片的ID: id = 55 然后我修改,我得到 path = 000000055 那么path =“000/000/055” 然后path =“000/000/055 / thumb.jpg”

随时可以使用!

现在我想要一些更聪明的东西,因为很容易追踪服务器上的所有图像,因为ID是顺序的:1,2,3,4,5,6 ......

所以我必须考虑从55创建一个7字符长度的字符串,不会与其他数字重叠。我甚至可以将55转换为0000055,并使用秘密字符串将其转换为7个字符长度的字符串。然后,当我得到秘密字符串和id我想要回到那个7字符长度的字符串。

这可能吗?我正在考虑仇恨,但他们只使用0-9和a-e而且更多的是chars ..:s

2 个答案:

答案 0 :(得分:1)

我认为您需要使用数据库来执行此操作。您可以生成随机的7个字符串,并将它们与它们映射到的路径一起存储在表中。

除此之外,实际上没有简单的方法可以可靠地采取任意路径,将其“压缩”到7个字符,然后能够从这7个字符中再次获得路径。

答案 1 :(得分:0)

我会在表中添加一个新列来存储GUID值。这样,您就拥有了一个非顺序的标识符。

如果你不能使用GUID并且它真的需要7个字符...好吧,我要做的是生成GUID,取(第一个/最后一个)7个字符,确保它是唯一的,并且保存。如果它不是唯一的,我会生成另一个GUID直到它。

顺便说一下,这与Eric的答案非常相似;我只是想特别提到GUID。