2010-05-12 59 views
0

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

的字符串必须包含从 “A” 到 “Z” 字符和数字从0到9

我有一个包含这样

DIR/P3/I2/S21 /拇指照片目录.jpg

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

编辑: 目前即时通讯使用图像的ID: ID = 55 然后我修改,我也得到 路径= 000000055 然后路径= “000/000/055” 然后路径=“000/000 /055/thumb.jpg“

准备使用!

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

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

这可能吗?我正在考虑hases,但他们只使用0-9和a-e并且更多字符。:s

+0

等什么?我很抱歉,但我需要更清晰,你在这里问什么? – zellio 2010-05-12 19:32:41

+0

好吧,我将在主要问题 – 2010-05-12 19:40:12

+0

中解释看看这个问题,它可能会给你一些想法。 http://stackoverflow.com/questions/890907/ideas-to-create-a-small-10-digits-not-very-secure-hash – Jaime 2010-05-12 20:08:22

回答

1

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

除此之外,确实没有简单的方法可以可靠地采取任意路径,将它压缩到7个字符,然后再从这7个字符中取回路径。

+0

我在主要问题 – 2010-05-12 19:45:07

0

我会添加一个新的列到您的表来存储一个GUID值。这样,你有一个非顺序的标识符。

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

这和Eric的回答很相似,我只是想特别提到GUID。

+0

更好解释是的,当然会添加另一列在表中,当然我使用数据库,唯一的问题是获取7char字符串...我将检查出来的GUID – 2010-05-12 19:57:52

+0

@Totty - 如果你告诉我们你正在使用什么数据库系统,我当然我们可以为您提供一个函数来生成一个唯一的/随机的7个字符的字符串。 – overslacked 2010-05-12 20:21:05

+0

使用mysql数据库。谢谢 (: – 2010-05-13 09:30:27