Pular para o conteúdo principal

Instruções de autenticação nos webservices

Deverá ser solicitado o usuário e o código interno do webservice para o administrador nacional do SEEU. A senha é dinâmica e muda diariamente, sendo gerada a partir de um código interno, que deve ser mantido sob sigilo. O código interno deverá ser incluído como parâmetro no código abaixo, que gera a senha dinâmica. Sendo assim, ele deve estar na chamada do webservice.

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class GerarSenha {

public static void main(String[] args) {
String codigoSistema;
String senhaDeHoje;

codigoSistema = "999999";

senhaDeHoje = gerarSenha(codigoSistema);

System.out.printf("%s\n", senhaDeHoje);
}

public static String gerarSenha(String codigoSistema) {

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
String ddMM = "";
Calendar dataBase = Calendar.getInstance();

ddMM = sdf.format(dataBase.getTime());

String password = codigoSistema + ddMM;

MessageDigest md = null;
try {
md = MessageDigest.getInstance("MD5");
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
byte[] hashInBytes = md.digest(password.getBytes(StandardCharsets.UTF_8));

StringBuilder sb = new StringBuilder();

for (byte b : hashInBytes) {
sb.append(String.format("%02x", b));
}
return sb.toString();
}
}
<?php
// Exemplo de chamada
echo gerarSenha('999999');

// função para gerar a senha [$codigoSistema deve ser solicitado ao CNJ]

function gerarSenha($codigoSistema){

$tz = new DateTimeZone('America/Sao_Paulo');
$retorno = '';
$sdf = date_format(new DateTime("now", $tz),'Ymd');
$password = $codigoSistema . $sdf;

$hash = md5($password, true);

for($i=0; $i<strlen($hash); $i++) {
$tokenDiario .= sprintf('%02x',ord($hash[$i]));
}

return $tokenDiario;
}