Usuário com melhor resposta
Conversion erro C#

Pergunta
-
Oi galera boa noite a todos vcs ! Bom eu tive um problema ou converter meu codigo vb.net pra c# alguém pode me ajudar ? obrigado a todos vcs !!! ....
Codigo convertido
public byte[] XOREncrypt(byte[] up, string BB2) { byte[] CL = Encoding.ASCII.GetBytes(BB2); VBMath.Randomize(); int FP = Conversion.Int((255 - 0 + 1) * VBMath.Rnd()) + 1; byte[] BA = new byte[up.Length + 1]; int KA = 0; for (int MP = 0; MP <= up.Length - 1; MP++) { BA[MP] += System.Convert.ToByte((up[MP] ^ CL[KA]) ^ FP); if (KA == BB2.Length - 1) { KA = 0; } else { KA++; } } BA[up.Length] = System.Convert.ToByte(112 ^ FP); return BA; }
Foto do codigo convertido pra c#
Respostas
-
Tente o seguinte: faça o que falei antes, faça a referência do Microsoft.VisualBasic e tente isso:
VBMath.Randomize(); int FP = 256 * Convert.ToInt32(VBMath.Rnd()) + 1;
Não tenho certeza exatamente do que pode estar acontecendo, mas vamos tentar abranger os problemas do Random().
Att., Rafael Simor
- Marcado como Resposta João Paulo [] quarta-feira, 4 de novembro de 2015 02:17
-
Boa tarde.
O erro diz que o valor é muito pequeno ou muito grande para o byte.
Tentes colocar um breaking point (tanto na aplicação C# tanto na VB.NET) e comparar os valores para ver se encontras o problema.
Att., Rafael Simor
Todas as Respostas
-
Boa noite.
Para o Randomizer:
Random rnd = new Random(); double numX = rnd.NextDouble();
E não tenho certeza o que faz o Conversion.Int(), porém se for somente conversão para inteiro, no C# a usamos:
Int32.Parse();
Caso o código não dê certo mesmo assim, tu também podes adicionar a referência Microsoft.VisualBasic para teu projeto, mas recomendaria isso somente em últimos casos.
Att., Rafael Simor
-
Oi amigo bom deu erado o random o codigo em vb.net e esse
Public Function XOREncrypt(ByVal up As Byte(), ByVal BB2 As String) As Byte() Dim CL As Byte() = System.Text.Encoding.ASCII.GetBytes(BB2) Randomize() Dim FP As Integer = Int((255 - 0 + 1) * Rnd()) + 1 Dim BA(up.Length) As Byte Dim KA As Integer For MP As Integer = 0 To up.Length - 1 BA(MP) += (up(MP) Xor CL(KA)) Xor FP If KA = BB2.Length - 1 Then KA = 0 Else KA = KA + 1 Next BA(up.Length) = 112 Xor FP Return BA End Function
-
-
-
Tente o seguinte: faça o que falei antes, faça a referência do Microsoft.VisualBasic e tente isso:
VBMath.Randomize(); int FP = 256 * Convert.ToInt32(VBMath.Rnd()) + 1;
Não tenho certeza exatamente do que pode estar acontecendo, mas vamos tentar abranger os problemas do Random().
Att., Rafael Simor
- Marcado como Resposta João Paulo [] quarta-feira, 4 de novembro de 2015 02:17
-
-
-
-
-
Boa tarde.
O erro diz que o valor é muito pequeno ou muito grande para o byte.
Tentes colocar um breaking point (tanto na aplicação C# tanto na VB.NET) e comparar os valores para ver se encontras o problema.
Att., Rafael Simor
-