仅使用特殊字符进行加密和解密

本文关键字:加密 解密 特殊字符 | 更新日期: 2023-09-27 18:17:26

我必须加密和解密字符串,但只有特殊字符我不希望字母数字成为加密的一部分

我已经尝试过Rijndael加密,我只得到一个数字输出

如何获得特殊字符

对于特殊字符

还有其他的算法吗?

尝试TripleDes提供程序和相同的结果,是否有任何算法在加密

时只选择特殊字符

我有一个产品在产品发布前和我产生串行键包含许可信息,当客户端激活软件我想加密机名称+系列键+主板没有生成激活键,现在,当我的客户打开软件我将对激活密钥进行解密和验证串行关键以及他是否使用其他机器,我将与机器id和母亲板不,我需要一个加密如果可能,只包含特殊字符,到目前为止它还不起作用

仅使用特殊字符进行加密和解密

计算机是数字化的。换句话说,他们操作的所有数据,包括加密输出的密文,都是离散的数字。

所以,当你说输出是字母数字时,你实际上是在谈论输出的变换,而不是输出本身。只是对输出使用不同的变换。常见的转换是64进制和十六进制,但这些不满足你的(相当奇怪的)要求;你可能得自己编了。

例如,您可以用"+"answers"-"字符表示密文,并将它们映射为0位和1位。当然,这可能会产生一些非常长的字符串!

或者,如果你能识别16个"特殊字符",你可以将每个字符映射到一个4位的值,并使用一些相当于十六进制的特殊字符,而不是数字和字母。

我能问一下你到底为什么要做这件事吗?

从十六进制输出中获取十六进制字符,将它们与一些"特殊"字符一一映射,然后在解密时进行映射。

我敢打赌这解决不了任何实际问题。除了《纸牌》,自二战结束以来,还没有多少现代加密系统使用字符而不是字节,我们只是使用字符来呈现输出。

当然,这样的映射不会在安全性方面增加任何东西,只会导致可移植性问题。

AES/Rijndael输出看似随机的字节;您将获得从0x00到0xFF的所有值。我怀疑正在发生的事情是,在某些时候,字节被转换为十六进制字符或Base64以允许显示。如果你不想要字符,那么让你的输出作为一个字节数组,不要转换它。

从字节到十六进制字符或Base64的转换对加密的安全性没有影响。它只允许密文在需要字符数据的系统上传输。