字符串只用数字加密?

时间:2010-12-30 23:54:19

标签: string security encryption primes

假设您的银行职员给您一个任意密码,例如hel34/hjal0@#,如果不将其写入论文,您将无法记住它。困境:你永远不会在纸上写密码。因此,您尝试创建一个加密的一对一映射,其中您只写一个纸张的密钥,只写数字,并将剩余的垃圾留给您的服务器。当然,密码可以包含任意内容。

mvds有正确的想法,改变基础。 Eugene发现错误,因此一对一地图应该是:

prime1*prime2*...*primeN <----- encoding -------> String

2 个答案:

答案 0 :(得分:2)

我不知道我是否真的理解你的问题,但你可以看到你的输入是一个基数为62的数字(26 + 26 + 10),你可以读作一个整数,然后以任何方式处理它你喜欢。然后将结果转换回您的自定义base-62格式。

举个例子,你的数字范围是[0-9a-zA-Z],所以0 = 0十进制,Z = 61十进制,10将是62十进制。

然后9aZ将是9 * 62 * 62 + 10 * 62 + 61 = 35277十进制,其中素数因子为3 * 11 * 1069。

将它们转换回来会导致:9aZ = 3 * b * hg

答案 1 :(得分:0)

首先,您的数字代码不能短于密码:较短的密码会降低保护强度。因此,您需要保持密码完整(并对其进行编码)或使密码更长。

在谈论编码时,您可以使用BASE10或BASE16编码。使用Base16编码,每个原始字符有2个字符(如果我们保持在ASCII字符集中),Base10编码的长度会有所不同,为了确保正确解码,最终每个原始ASCII字符使用3个字符。