Language agnostic 如何创建我们自己的数字系统?

Language agnostic 如何创建我们自己的数字系统?,language-agnostic,system,numbers,Language Agnostic,System,Numbers,问题是针对任何现代非托管语言。类似C语言、delphi等 我想创建自己的加密算法,与其他算法不同,该算法减少了加密字符串的长度 我的第一个想法是创建我自己的数字系统,类似于十六进制,但有更多的字符。例如[0..9]+[A..Z]。这将使一个数字高达40变成一个数字值。我还可以添加其他数字,如“!”、./?!”等等 我的问题是如何实现从A到Z(包括0到9)的数字系统。我是否必须将每个值声明为0xzzzz之前的常量?那会让我的生活很糟糕 请给我你的建议和例子 通常,加密算法减少加密文本大小的方法是首

问题是针对任何现代非托管语言。类似C语言、delphi等

我想创建自己的加密算法,与其他算法不同,该算法减少了加密字符串的长度

我的第一个想法是创建我自己的数字系统,类似于十六进制,但有更多的字符。例如[0..9]+[A..Z]。这将使一个数字高达40变成一个数字值。我还可以添加其他数字,如“!”、./?!”等等

我的问题是如何实现从A到Z(包括0到9)的数字系统。我是否必须将每个值声明为0xzzzz之前的常量?那会让我的生活很糟糕


请给我你的建议和例子

通常,加密算法减少加密文本大小的方法是首先通过通用压缩算法运行文本,然后对压缩结果进行加密。与尝试将两种算法合并为一种算法相比,这种方法几乎总能获得更好的结果。

通常,加密算法减少加密文本大小的方法是首先通过通用压缩算法运行文本,然后对压缩结果进行加密。通过这种方式,您几乎总能获得比将两种算法合并为一种算法更好的结果。

您需要改变计算机和存储的工作方式

没有可用内存,也没有办法获得可用空间。当你们把数字写在纸上时,改变数字系统会给你们更多的空间,但在计算机内存中,你们仍然需要同样数量的位

还要注意的是,如果您想要加密某些内容,该操作也会阻止任何有意义的压缩,因为加密内容必须尽可能接近随机

通常在加密GZip或类似的东西之前会进行某种形式的压缩,但通过改变数字系统是行不通的


请使用一些经过验证的加密算法。

您需要改变计算机和存储的工作方式

没有可用内存,也没有办法获得可用空间。当你们把数字写在纸上时,改变数字系统会给你们更多的空间,但在计算机内存中,你们仍然需要同样数量的位

还要注意的是,如果您想要加密某些内容,该操作也会阻止任何有意义的压缩,因为加密内容必须尽可能接近随机

通常在加密GZip或类似的东西之前会进行某种形式的压缩,但通过改变数字系统是行不通的


另外,请使用一些经过验证的加密算法。

我建议在加密之前使用gzip、zlib或其他任何方法压缩输入。这比创建自己的算法更容易、更安全。例如,GnuPG就是这样做的。

我建议在加密输入之前,只使用gzip、zlib或任何东西压缩输入。这比创建自己的算法更容易、更安全。例如,GnuPG就是这样做的。

让我们考虑一下

每个以40为基数的字符占用8位。它对0到39之间的数字进行编码,这仅仅是5位实际信息的一根头发

一个字节可以代表256个不同的值。以40为基数的编码仅表示同一字节中的40个不同值

这似乎是每编码字节2-3位的净损失

话虽如此,以40为基数的值是一个字符串,仅此而已。不需要复杂的数据库声明-它只是一个字符串

您可以编写两个函数—toBase40 someBytes和toBytes someBase40string,以将base40字符串转换为普通字符串


如果您想要一个完善的现有解决方案,请进行研究。

让我们考虑一下

每个以40为基数的字符占用8位。它对0到39之间的数字进行编码,这仅仅是5位实际信息的一根头发

一个字节可以代表256个不同的值。以40为基数的编码仅表示同一字节中的40个不同值

这似乎是每编码字节2-3位的净损失

话虽如此,以40为基数的值是一个字符串,仅此而已。不需要复杂的数据库声明-它只是一个字符串

您可以编写两个函数—toBase40 someBytes和toBytes someBase40string,以将base40字符串转换为普通字符串


如果您想要一个完善的现有解决方案,请进行研究。

Base64字符串在许多计算机语言中都很常见,而且非常标准。它使用以下字符:

ABCDEFGHIJKLMNOPQRSTUVXYZABCDFGHIJKLMNOPQRSTUVXYZ0123456789+/


有关更多信息,请参见

Base64字符串在许多计算机语言中都很常见,并且是相当标准的。它使用以下字符:

ABCDEFGHIJKLMNOPQRSTUVXYZABCDFGHIJKLMNOPQRSTUVXYZ0123456789+/


有关更多信息,请参见

开发加密算法的人员可能花费了数百万工时, 在研究生院和博士后工作多年,以获得专业知识。你凭什么认为你能想出更好的办法

你可能会想出一个不安全的算法


使用现有的算法并使用压缩。

开发加密算法的人可能在研究生院和博士后中花费了数百万工时、数年时间来获得专业知识。你凭什么认为你能想出更好的办法

你可能会想出一个不安全的算法


使用现有算法并使用压缩。

您似乎在询问以36为基数的数字。这些已经广泛应用于密码学、压缩等领域。在提出这个问题之前,您是否做过任何研究?使用base 40如何减少字符串的长度?你能举个例子吗?创建自己的密码可能很有趣。但是如果你真的要使用它,那么请阅读Niels Ferguson和Bruce Schneider在实用密码学中的攻击方法。然后我建议你选择一个现有的算法。。。老实说吧。我们中的大多数人确实在一个时间点上创建了一些加密算法,通常是在开始编程时,但该算法价值的可能性极低。安全是一个数学密集型的运动场,人们在上面工作了一辈子。这不是一个可以作为业余爱好项目正确完成的事情。我想你没有注意到十六进制字符实际上代表半个字节,而不是一个完整的字节。所以在一个字节中放入两个十六进制字符,而在一个字节中放入一个base40字符。你实际上是在试图做与你的目标相反的事,无论如何,这是不可能实现的。你似乎在问36个基数。这些已经广泛应用于密码学、压缩等领域。在提出这个问题之前,您是否做过任何研究?使用base 40如何减少字符串的长度?你能举个例子吗?创建自己的密码可能很有趣。但是如果你真的要使用它,那么请阅读Niels Ferguson和Bruce Schneider在实用密码学中的攻击方法。然后我建议你选择一个现有的算法。。。老实说吧。我们中的大多数人确实在一个时间点上创建了一些加密算法,通常是在开始编程时,但该算法价值的可能性极低。安全是一个数学密集型的运动场,人们在上面工作了一辈子。这不是一个可以作为业余爱好项目正确完成的事情。我想你没有注意到十六进制字符实际上代表半个字节,而不是一个完整的字节。所以在一个字节中放入两个十六进制字符,而在一个字节中放入一个base40字符。你实际上是在做与你的目标相反的事,无论如何,这是不可能实现的。我支持你的观点。这篇文章比我以前解释得更好:我以前确实发布了错误的链接,所以如果你已经检查了,请再次检查,我会支持。这篇文章比我以前解释得更好:我以前发布了错误的链接,所以如果你已经检查了,请再次检查