C# .Net

Exemplos > Gerar Token .NET

O token é gerado a partir da Criptocrafia em SHA1 da chave fornecida pela APISUL em conjunto com data e hora(ddMMyyyyHHmm).

A data  e hora para geração do token devem estar em atualizada e seu padrão no formato UTC

 

Exemplo Baixo

 

 

Class: Chave2Token

 

 

using System;

using System.Collections.Generic;

using System.IO;

using System.Linq;

using System.Security.Cryptography;

using System.Text;

using System.Threading.Tasks;

 

namespace GeradorToken

{

    public class Chave2Token

    {

        public string chave { getset; }

        public string token

        {

            get

            {

                return gerar();

            }

        }

 

        

        private string gerar()

        {

            

            // Cria o salte baseado na data hora e minuto UTC 

            string senhaInterna = chave;

            string dateUTC = DateTime.UtcNow.ToString("ddMMyyyyHHmm");

            byte[] Salt = Encoding.ASCII.GetBytes(senhaInterna.Length.ToString());

            

            // Cria uma chave secreta baseada no salt

            PasswordDeriveBytes chaveScreta = new PasswordDeriveBytes(senhaInterna, Salt,"SHA1",1);

            

            // Cripitografa a chave secreta

            RijndaelManaged RijndaelCipher = new RijndaelManaged();

            ICryptoTransform encripitador = RijndaelCipher.CreateEncryptor(chaveScreta.GetBytes(16), chaveScreta.GetBytes(16));

            

            // Acionado a Chave ao objeto em memoria para realizar a o encript do TOKEN

            MemoryStream memoryStream = new MemoryStream();

            CryptoStream encripChave = new CryptoStream(memoryStream, encripitador, CryptoStreamMode.Write);

 

            // Montagem do Token sobre a senha forneceida pela APISUL

            byte[] planoTexto = System.Text.Encoding.Unicode.GetBytes(dateUTC);

            encripChave.Write(planoTexto, 0, planoTexto.Length);

            encripChave.FlushFinalBlock();

            byte[] tokenBytes = memoryStream.ToArray();

            memoryStream.Close();

            encripChave.Close();

 

            // Transfere o TOKEN para Base 

            string token = Convert.ToBase64String(tokenBytes);

            return token;

        }

    }

}

 

 

 

 

 

Class: Program

 

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Diagnostics;

 

 

namespace GeradorToken

{

    class Program

    {

        static void Main(string[] args)

        {

            Chave2Token gerarToken = new Chave2Token()

            {

                chave = "123456789"

            };

            Console.WriteLine(" Chave para Token " + gerarToken.token);

 

            Console.ReadKey();

 

        }

    }

}

 

.

Volta ao topo