43 lines
1.6 KiB
Dart
43 lines
1.6 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 posI = 0;
|
|
int posF = 0;
|
|
int posMax = 0;
|
|
// Pra cada tipo (1, 2 ou 3) define a posição inicial da quebra da senha
|
|
if(tipo == 1){
|
|
posI = 0;
|
|
posF = 16;
|
|
posMax = 16;
|
|
} else if(tipo == 2){
|
|
posI = 16;
|
|
posF = 0;
|
|
posMax = 16;
|
|
} else if(tipo == 3){
|
|
posI = 0;
|
|
posF = 31;
|
|
posMax = 1;
|
|
}
|
|
|
|
print('posI $posI posF $posF PosMax $posMax');
|
|
print('inicio ${senhaMD5.substring(0, 16)}');
|
|
print('meio ${senhaMD5.substring(16, 32)}');
|
|
print('fim ${senhaMD5.substring(posF, posMax)}');
|
|
print('senha: ${senhaMD5.substring(posI, posMax) + senha + senhaMD5.substring(posF, posMax)}');
|
|
print('${grHashString(GRCryptoType.sha1, senhaMD5.substring(posI, posMax) + senha + senhaMD5.substring(posF, posMax))}');
|
|
|
|
|
|
// Faz a criptografia e concatena ela com sha1 e md5
|
|
String senhaCriptogradafa = tipo.toString() + '\$'+ grHashString(GRCryptoType.sha1, senhaMD5.substring(posI, posMax) + senha + senhaMD5.substring(posF, posMax));
|
|
// Retorna a senha criptografada
|
|
return senhaCriptogradafa;
|
|
}
|
|
} |