on 04-26-2018 4:41 PM
Hi experts, I hope you can help.
We have a requirement where some strings need hashed (i.e. password and signature key).
I have read previous blog, but struggling to get it working:
https://archive.sap.com/discussions/message/16521608#16521608
vadim.klimov
Former Member did you use both UDFS or a combo of the 2 to achieve your result?
This mapping requirement is relatively simple - UDF to SHA512 Hash a string returning the hashed result in capital format. Basically the same as:
https://passwordsgenerator.net/sha512-hash-generator/
Input string: TestHash
SHA512 Hash of your string:6D9DB987D524AFB3EA05F4679E7A4A16C242C45BE6E40891FF13D4AE24B846917994AD54731F3AF0DE96921C98D242397DC0CA0EAEC53BDDA87053F3573E286C
Many thanks in advance
David King
Hi David ,
Please find below UDF to create SHA512 Hash of String
After HASH String you can simply use the toUpperCase functionality from mapping
public String SHA512(String s, Container container) throws StreamTransformationException{
{
try {
getTrace().addInfo(s);
java.security.MessageDigest md = java.security.MessageDigest.getInstance("SHA-512");
md.update(s.getBytes("UTF-8"));
byte[] byteData=md.digest();
s=new String(byteData);
//converting to hex
StringBuffer hexString = new StringBuffer();
for (int i=0;i<byteData.length;i++) {
String hex=Integer.toHexString(0xff & byteData[i]);
if(hex.length()==1) hexString.append('0');
hexString.append(hex);
}
s=hexString.toString();
} catch (Exception e) {
// TODO Auto-generated catch block
throw new StreamTransformationException(e.getMessage());
}
return s;
}
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
101 | |
13 | |
13 | |
11 | |
11 | |
7 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.