dochipis 6 Denunciar post Postado Julho 28, 2015 Olá gente, Seguinte tenho a seguinte função em delphi preciso converte-la para c#. function Codifica(Const Str1: String): String; var Mascara, Str2: String; PonM, PonS: Byte; begin Mascara := '#$%$'#13#12; Str2 := ''; PonM := 1; For PonS := 1 To Length(Str1) Do Begin AppendStr(Str2, Chr(Ord(Str1[PonS]) Xor Ord(Mascara[PonM]))); Inc(PonM); If PonM = Length(Mascara) Then PonM := 1; End; Result := Str2; end; Como fazer isso? flws. Compartilhar este post Link para o post Compartilhar em outros sites
Dan Borges 26 Denunciar post Postado Julho 28, 2015 Difícil. Já tentou procurar algum conversor de "Delphi to C#" Compartilhar este post Link para o post Compartilhar em outros sites
KhaosDoctor 242 Denunciar post Postado Julho 28, 2015 Algumas funções são simples, como o for que eu estou vendo ai, outras são mais complexas de tentar entender, se você dizer mais ou menos o que ele faz a gente talvez possa ajudar Compartilhar este post Link para o post Compartilhar em outros sites
dochipis 6 Denunciar post Postado Julho 28, 2015 quase lá, segue codigo: public string Codifica2(string str) { System.Text.StringBuilder strText2 = new System.Text.StringBuilder(); string Mascara = "'#$%$'#13#12"; int PonM = 1; for (int i = 0; i < str.Length; i++) { strText2.Append(Convert.ToChar((int)str[i] ^ (int)Mascara[PonM])); PonM++; if (PonM == Mascara.Length) { PonM = 1; } } return strText2.ToString(); } Codifica2("BONON") resultado = akkki mas deveria ser akkkC Codifica2("NASS") resultado = mevw correto Senha com até 4 caracteres são decodificadas ser erro,mas com 5 ou mais caracteres decodifica diferente da que está no banco. Ainda não conseguir resolver isso!!!! Compartilhar este post Link para o post Compartilhar em outros sites
KhaosDoctor 242 Denunciar post Postado Julho 29, 2015 Você já tentou colocar breakpoints? Compartilhar este post Link para o post Compartilhar em outros sites
dochipis 6 Denunciar post Postado Julho 29, 2015 Já tentei sim, mas não achei o problema.Agora está assim: public static string Codifica(string value) { value = value.Trim(); System.Text.StringBuilder encryptedValue = new System.Text.StringBuilder(); //string Mascara = "'#$%$'#13#12"; string Mascara = "'#$%$-##13#12"; int PonM = 1; foreach (char character in value) { int charCode = (int)character; int charMask = (int)Mascara[PonM]; char encrypedChar = (char)(charCode ^ charMask); PonM++; if (PonM == Mascara.Length) { PonM = 1; } encryptedValue.Append(encrypedChar.ToString()); } return encryptedValue.ToString(); } Codifica("VICTOR") resultado = umfpbq mas deveria ser umfpBq Codifica("silvIo") resultado = PMIRdL mas deveria ser PMIRDL A questão é que não está fazendo o upper no caracter.flws... Compartilhar este post Link para o post Compartilhar em outros sites
dochipis 6 Denunciar post Postado Julho 29, 2015 Resolvido a mascara estca incorreta: public static string Codifica(string value) { value = value.Trim(); System.Text.StringBuilder encryptedValue = new System.Text.StringBuilder(); string Mascara = "#$%$" + (char)13 + (char)12; int PonM = 0; foreach (char character in value) { int charCode = (int)character; int charMask = (int)Mascara[PonM]; char encrypedChar = (char)(charCode ^ charMask); PonM++; if (PonM == Mascara.Length-1) { PonM = 0; } encryptedValue.Append(encrypedChar.ToString()); } return encryptedValue.ToString(); } Codifica("VICTOR") resultado = umfpbq Compartilhar este post Link para o post Compartilhar em outros sites