/
Calculating Verification Code
Calculating Verification Code
In the step-by-step instructions, this is described like this:
The verification code is calculated by:
verification code = integer(SHA256(the hash)[-2:-1]) mod 10000
Calculate SHA256 from the hash, extract 2 rightmost bytes from the result, interpret them as a big-endian unsigned integer and take the last 4 digits in decimal form for display. SHA256 is always used here.
Please mind that hash is a real hash byte value, not the Base64 form or the hexadecimal representation.
This can be difficult to understand.
Below is a small Java code example that perhaps shows this in a more understandable way.
public static String CalculateVcode(String hashString) throws NoSuchAlgorithmException
{
MessageDigest md = MessageDigest.getInstance("SHA-256");
byte[] hash = Base64.getDecoder().decode(hashString);
md.update(hash);
byte[] _hash = md.digest();
byte[] last = new byte[2];
last[0] = _hash[_hash.length-2];
last[1] = _hash[_hash.length-1];
Integer code = new BigInteger(1, last).intValue();
int intCode = code.intValue();
String strCode = code.toString();
return strCode.substring(strCode.length()-4);
}
, multiple selections available,
Related content
Error Codes
Error Codes
Read with this
SIM Signing using CIBA (PKCS7)
SIM Signing using CIBA (PKCS7)
Read with this
API: Authenticator Choices
API: Authenticator Choices
Read with this
Signing Integration Guide with CIBA
Signing Integration Guide with CIBA
Read with this
Integration process flow chart
Integration process flow chart
Read with this
Auðkennis Environments
Auðkennis Environments
Read with this