我遇到的问题是方法调用需要字符串(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;
答案 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跳过黄色的月亮");