Forum Discussion
Decrypt string values from a column of a table in a query
Hello,
i search to decrypt string values from a crypted column on a table imported as a query in my Power BI report.
The string is crypted in input with a XOR algorythm as follow :
String ToCrypt="";
for (int i=0; i< "sample_string".length();i++) {
ToCrypt = ToCrypt + (char)("sample_string".charAt(i)^24); //(XOR 24)
}
How can i do in Power Query to decrypt in a new column the content of this crypted column for each row of my query ? (dataset). Thank you for yours ideas and comments
Hi Sarazin73,
I've written a custom function for you:
fnXorCrypt = ( string as text, xorValue as number ) as text => // concat encrypted characters List.Accumulate( // get a list of chars Text.ToList(string), // initial string "", // accumulate last state and a new encrypted character (state, current) => state & Character.FromNumber( Number.BitwiseXor( Character.ToNumber(current), xorValue ) ) )The usage:
EncodedString = fnXorCrypt("Lundi", 42)A test:
4 Replies
- Sarazin73Frequent Visitor
Hi,
Thanks for helphing me !
The algorythm used is the same to decryt than to encrypt. The initial outside script that crypt data as source is in java language. We have finally do tests with XOR 42 instead of XOR 24. Below, some samples with their corresponding encoding string.Lundi : f_DNC
Mardi : gKXNC
Mercredi : gOXIXONC
Jeudi : `O_NC
Vendredi : |ODNXONC
Samedi : yKGONC
Dimanche : nCGKDIBO
- Nolock
Resident Rockstar
Hi Sarazin73,
I've written a custom function for you:
fnXorCrypt = ( string as text, xorValue as number ) as text => // concat encrypted characters List.Accumulate( // get a list of chars Text.ToList(string), // initial string "", // accumulate last state and a new encrypted character (state, current) => state & Character.FromNumber( Number.BitwiseXor( Character.ToNumber(current), xorValue ) ) )The usage:
EncodedString = fnXorCrypt("Lundi", 42)A test: