Files
rkmmobile/lib/service/api/encrypt_password.dart

42 lines
1.5 KiB
Dart

import 'package:gainer_crypto/crypto.dart';
class EncryptPassword{
encrypt(String senhaDigitada,String senhaUsuario) {
// Deixa e senha digitada em maiuscula
var senha = senhaDigitada.toUpperCase();
// Faz a criptografia da senha inserida
String senhaMD5 = grHashString(GRCryptoType.md5, senha);
// Retira o tipo (1, 2 ou 3) da senha do Usuário
int tipo = int.parse(senhaUsuario.substring(0, 1));
// Define a possição inicial da quebra da senha
int posicaoInicialMin = 0;
int posicaoInicialMax= 0;
int posicaoFinalMin = 0;
int posicaoFinalMax = 0;
// Pra cada tipo (1, 2 ou 3) define a posição inicial da quebra da senha
if(tipo == 1){
posicaoInicialMin = 0;
posicaoInicialMax = 16;
posicaoFinalMin = 16;
posicaoFinalMax = 32;
} else if(tipo == 2){
posicaoInicialMin = 16;
posicaoInicialMax = 32;
posicaoFinalMin = 0;
posicaoFinalMax = 16;
} else if(tipo == 3){
posicaoInicialMin = 0;
posicaoInicialMax = 1;
posicaoFinalMin = 31;
posicaoFinalMax = 32;
}
String inicio = senhaMD5.substring(posicaoInicialMin, posicaoInicialMax);
String fim = senhaMD5.substring(posicaoFinalMin, posicaoFinalMax);
// Faz a criptografia e concatena ela com sha1 e md5
String senhaCriptogradafa = tipo.toString() + '\$'+ grHashString(GRCryptoType.sha1, inicio + senha + fim);
// Retorna a senha criptografada
return senhaCriptogradafa;
}
}