DESCryptoServiceProvider.net并限制加密字符集
因此,我正在使用.net DecryptoServiceProvider加密字符串 是否可以限制加密字符串的字符集,使其不包含特定的字符范围DESCryptoServiceProvider.net并限制加密字符集,.net,encryption,.net,Encryption,因此,我正在使用.net DecryptoServiceProvider加密字符串 是否可以限制加密字符串的字符集,使其不包含特定的字符范围 例如/或\?否,但您可以使用编码对其进行编码。所以它不会包含任何非文本字符 byte[] encryptedStream = .. string encryptedString = Convert.ToBase64String(encryptedStream ); 您想从纯文本字符串转换为加密字符串吗?如果是这样,请使用支持全范围Unicode的编码将明
例如/或\?否,但您可以使用编码对其进行编码。所以它不会包含任何非文本字符
byte[] encryptedStream = ..
string encryptedString = Convert.ToBase64String(encryptedStream );
您想从纯文本字符串转换为加密字符串吗?如果是这样,请使用支持全范围Unicode的编码将明文数据转换为二进制数据,并使用base64将加密二进制数据转换为“安全”加密文本 因此,管道的步骤是: 加密
- 将明文(字符串)转换为明文(字节)-例如
- 使用
(DESCryptoServiceProvider
到plainBinary
)以正常方式加密encryptedBinary
- 将加密二进制文件转换为加密文本:
string encryptedText = Convert.ToBase64String(encryptedBinary);
- 将加密文本转换为加密二进制:
byte[] encryptedBinary = Convert.FromBase64String(encryptedText);
- 以正常方式解密(
到encryptedBinary
)plainBinary
- 将纯二进制转换为纯文本:
string plainText = Encoding.UTF8.GetString(plainBinary);
StreamWriter
(用于文本到二进制的转换)、CryptoStream
(用于DES加密)和tobase64转换来传输数据,最后只保留加密和base64编码数据的转换(例如,使用Encoding.ASCII
)。然后,您可以使用FromBase64Transform
来反转该过程
如果base64对所创建的字符没有足够的限制,您可以编写自己的base64类型的转换—任何占用任意字节并生成可解码回这些字节的文本(仅使用允许的字符)都可以
string plainText = Encoding.UTF8.GetString(plainBinary);