将字符串转换为字节数组

时间:2016-08-20 06:48:23

标签: c# arrays string

我遇到的问题是方法调用需要字符串(plainText)或byte [](plainTextAsBytes)并且生成Cannot implicitly convert type string to byte[]的编译错误我试图将字符串隐式转换为字节数组也没有成功。

我已阅读并尝试了以下SO帖子中的示例:

Converting string to byte array in C#

Cannot implicitly convert type string to byte[]

我正在调用的代码位于(在C#部分):

How to encrypt and decrypt data with salt

那么,我做错了什么?

修改1

问题在于使用时:

byte[] array = Encoding.UTF8.GetBytes(SMTPModel.SMTPPassword);
EncryptedPassword = RijndaelEnhanced.Encrypt(plainTextBytes: array);

或:

EncryptedPassword = RijndaelEnhanced.Encrypt(plainText: decryptedPassword);

甚至:

EncryptedPassword = RijndaelEnhanced.Encrypt(plainText: "Test");

我收到上述错误。

修改2

忘记提供以下信息:

decryptedPassword是一个字符串,定义为:

string decryptedPassword = SMTPModel.SMTPPassword;

2 个答案:

答案 0 :(得分:0)

好的,感谢您的见解和帮助,但问题不在于我的代码,而在于我所调用的代码。当我使用来自Rijndael类(EncryptToBytes)的不同方法调用时,它编译得很好,没有错误。

以下是有效的陈述:

EncryptedPassword = RijndaelEnhanced.EncryptToBytes(plainTextBytes: Encoding.UTF8.GetBytes(SMTPModel.SMTPPassword));

再次,谢谢你的时间。

答案 1 :(得分:-2)

使用Encoding命名空间。请注意,UTF8编码可以是ASCII或其他。

byte [] array = Encoding.UTF8.GetBytes(" Quick Brown Fox跳过黄色的月亮");