Encrypt value null c#

本文关键字:null value Encrypt | 更新日期: 2023-09-27 18:02:38

我有一个问题…我是一个新手,我有这个代码,我正试图修复它:

string nomePesquisa = entryNmPesq.Text;
var nomePesqCripto = Crypto.EncryptAes(nomePesquisa, hash, salt);
string nomepesquisa = Uri.EscapeDataString(Convert.ToBase64String(nomePesqCripto));
ApiCall apiCall = new ApiCall();
apiCall.GetResponse<List<Envolvido>>("nomes", "Envolvidos", nomepesquisa)

有时"nomepesquisa"的值是空的,我得到一个错误的加密。所以,我试着这样做:

if (nomePesquisa != null)
{
    var nomePesqCripto = Crypto.EncryptAes(nomePesquisa, hash, salt);
    string nomepesquisa = Uri.EscapeDataString(Convert.ToBase64String(nomePesqCripto));
    }
else { string nomepesquisa = null; }

但是"nomepesquisa"没有被检测到,因为它们在IF内并且保持下划线。我的问题是:有时值将是空的,我不想加密…在本例中,我想在apiCall上传递值"nomepesquisa"。GetResponse !现在,由于IF,没有检测到"nomepesquisa"

Encrypt value null c#

我不确定你想要实现什么,但是你的if在错误的地方。我假设你想跳过API调用,如果值是null/empty ?那么你应该这样做:

string nomePesquisa = entryNmPesq.Text;
var nomePesqCripto = Crypto.EncryptAes(nomePesquisa, hash, salt);
string nomepesquisa = Uri.EscapeDataString(Convert.ToBase64String(nomePesqCripto));
if (!String.IsNullOrEmpty(nomepesquisa))
{
    ApiCall apiCall = new ApiCall();
    apiCall.GetResponse<List<Envolvido>>("nomes", "Envolvidos", nomepesquisa);
}

真正的问题是为什么nomepesquisa可以是空的或null放在首位?


所以我从你的编辑中理解:当entryNmPesq中有输入时,你想加密它并将其发送到API调用。当没有输入时,你想发送一个空字符串?

string nomePesquisa = entryNmPesq.Text;
string nomeApiCall = String.Empty;
if (!String.IsNullOrEmpty(nomePesquisa))
{
  var nomePesqCripto = Crypto.EncryptAes(nomePesquisa, hash, salt);
  nomeApiCall = Uri.EscapeDataString(Convert.ToBase64String(nomePesqCripto));
}
ApiCall apiCall = new ApiCall();
apiCall.GetResponse<List<Envolvido>>("nomes", "Envolvidos", nomeApiCall);