我们对构建Restful Web服务应用程序有要求,我们正在将Spring Boot与Oauth2一起使用。 问题是用户名和密码已使用SimpleCrypto.net库在C#中加密并存储在数据库中。 现在,当我们实现Outh2时,由于加密不同而出现错误。 有什么解决方案吗?
答案 0 :(得分:-2)
嗨,兄弟建议您使用我的自定义函数,该函数用于加密字符串
public string Encrypt(string textToEncrypt)
{
try
{
string ToReturn = "";
string _key = "ay$a5%&jwrtmnh;lasjdf98787";
string _iv = "abc@98797hjkas$&asd(*$%";
byte[] _ivByte = { };
_ivByte = System.Text.Encoding.UTF8.GetBytes(_iv.Substring(0, 8));
byte[] _keybyte = { };
_keybyte = System.Text.Encoding.UTF8.GetBytes(_key.Substring(0, 8));
MemoryStream ms = null; CryptoStream cs = null;
byte[] inputbyteArray = System.Text.Encoding.UTF8.GetBytes(textToEncrypt);
using (DESCryptoServiceProvider des = new DESCryptoServiceProvider())
{
ms = new MemoryStream();
cs = new CryptoStream(ms, des.CreateEncryptor(_keybyte, _ivByte), CryptoStreamMode.Write);
cs.Write(inputbyteArray, 0, inputbyteArray.Length);
cs.FlushFinalBlock();
ToReturn = Convert.ToBase64String(ms.ToArray());
}
return ToReturn;
}
catch (Exception ae)
{
throw new Exception(ae.Message, ae.InnerException);
}
}
此函数用于解密此加密的字符串
public string Decrypt(string textToDecrypt)
{
try
{
string ToReturn = "";
string _key = "ay$a5%&jwrtmnh;lasjdf98787";
string _iv = "abc@98797hjkas$&asd(*$%";
byte[] _ivByte = { };
_ivByte = System.Text.Encoding.UTF8.GetBytes(_iv.Substring(0, 8));
byte[] _keybyte = { };
_keybyte = System.Text.Encoding.UTF8.GetBytes(_key.Substring(0, 8));
MemoryStream ms = null; CryptoStream cs = null;
byte[] inputbyteArray = new byte[textToDecrypt.Replace(" ", "+").Length];
inputbyteArray = Convert.FromBase64String(textToDecrypt.Replace(" ", "+"));
using (DESCryptoServiceProvider des = new DESCryptoServiceProvider())
{
ms = new MemoryStream();
cs = new CryptoStream(ms, des.CreateDecryptor(_keybyte, _ivByte), CryptoStreamMode.Write);
cs.Write(inputbyteArray, 0, inputbyteArray.Length);
cs.FlushFinalBlock();
Encoding encoding = Encoding.UTF8;
ToReturn = encoding.GetString(ms.ToArray());
}
return ToReturn;
}
catch (Exception ae)
{
throw new Exception(ae.Message, ae.InnerException);
}
}
我希望这对您有帮助。