Developer Guide
FraudLabs Pro uses SHA1 with 64k loops to hash the sensitive values, such as, email_hash, username_hash, password_hash and card_hash. User is required to hash these values prior to API request using the sample codes given below, otherwise the API will returns you the error.
function fraudlabspro_hash($s){
$hash = 'fraudlabspro_' . $s;
for($i=0; $i<65536; $i++) $hash = sha1('fraudlabspro_' . $hash);
return $hash;
}
import java.security.MessageDigest;
import java.util.Formatter;
public class main {
public static String SHA1(String s) throws Exception{
MessageDigest sha1 = MessageDigest.getInstance("SHA1");
Formatter formatter = new Formatter();
sha1.update(s.getBytes());
byte[] hash = sha1.digest();
for(byte b : hash){
formatter.format("%02x", b);
}
return formatter.toString();
}
public static String fraudlabspro_hash(String s) throws Exception{
Integer i = 0;
String hash = "fraudlabspro_" + s;
for(i=0; i<65536; i++){
hash = SHA1("fraudlabspro_" + hash);
}
return hash;
}
}
Imports System.Security.Cryptography
Public Function fraudlabspro_hash(ByVal s As String) As String
Dim i As Integer = 0
Dim hash As String = "fraudlabspro_" + s
For i = 1 To 65536
hash = Me.SHA1("fraudlabspro_" + hash)
Next
Return hash
End Function
Public Function SHA1(ByVal s As String) As String
Dim sha As New SHA1CryptoServiceProvider
Dim bytes() As Byte
Dim x As String = ""
bytes = System.Text.Encoding.ASCII.GetBytes(s)
bytes = sha.ComputeHash(bytes)
For Each b As Byte In bytes
x += b.ToString("x2")
Next
Return x
End Function
using System.Security.Cryptography;
public string fraudlabspro_hash(string s)
{
int i = 0;
string hash = "fraudlabspro_" + s;
for (i = 1; i <= 65536; i++) {
hash = this.SHA1("fraudlabspro_" + hash);
}
return hash;
}
public string SHA1(string s)
{
SHA1CryptoServiceProvider sha = new SHA1CryptoServiceProvider();
byte[] bytes = null;
string x = "";
bytes = System.Text.Encoding.ASCII.GetBytes(s);
bytes = sha.ComputeHash(bytes);
foreach (byte b in bytes) {
x += b.ToString("x2");
}
return x;
}
import hashlib
def fraudlabspro_hash(s):
hash = "fraudlabspro_" + s
for i in range(65536):
hash = hashlib.sha1("fraudlabspro_" + hash).hexdigest()
return hash