Don't miss your chance to take the Fabric Data Engineer (DP-700) exam on us!
Learn moreWe've captured the moments from FabCon & SQLCon that everyone is talking about, and we are bringing them to the community, live and on-demand. Starts on April 14th. Register now
Hello,
I just started in the world of Power BI and now im facing a challenge.
In a sharepoint list I am storing values which are encrypted using a function within MS Access. Now I want to use this data in power bi and I am struggeling getting the data decrypted 😕
The VBA Code works fine in MSAccess
Public Const CodeKey As String = 1234#
Public Function XORDecryption(DataIn As String) As String
For arkdata1 = 1 To (Len(DataIn) / 2)
intXOrValue1 = Val("&H" & (Mid$(DataIn, (2 * arkdata1) - 1, 2)))
intXOrValue2 = Asc(Mid$(CodeKey, ((arkdata1 Mod Len(CodeKey)) + 1), 1))
strDataOut = strDataOut + Chr(intXOrValue1 Xor intXOrValue2)
Next arkdata1
XORDecryption = strDataOut
End Function
Results:
Input: "hello"
encryption("hello"): 5A56585D5D
decryption("5A56585D5D"): hello
How can i do in Power Query (or do I need a DAX function?) to decrypt the content for each row?
So far I was not even able to find the corresponding functions that are used in the VBA function..
I saw a similar post but as this is using a different function its not helping me to get this working.
Thanks a lot for your support!
Solved! Go to Solution.
Looks like I didn't properly translate the VBA text offset with the Power Query offset.
This should work:
= (DataIn as text) as text =>
let
asBinary = Binary.FromText(DataIn, BinaryEncoding.Hex),
numbers = Binary.ToList(asBinary),
xored = List.Transform({0 .. List.Count(numbers) - 1}, each
Number.BitwiseXor(numbers{_}, Character.ToNumber(Text.At(CodeKey, Number.Mod(_ + 1, Text.Length(CodeKey)))))
),
asDecodedBinary = Binary.FromList(xored),
asText = Text.FromBinary(asDecodedBinary, TextEncoding.Ascii)
in
asText
Thanks a lot for the great support!
The function would look something like (input into advanced editor after creating a blank query):
(DataIn as text) as text =>
let
asBinary = Binary.FromText(DataIn, BinaryEncoding.Hex),
numbers = Binary.ToList(asBinary),
xored = List.Transform({0 .. List.Count(numbers) - 1}, each
Number.BitwiseXor(numbers{_}, Character.ToNumber(Text.At(CodeKey, Number.Mod(_, Text.Length(CodeKey)))))
),
asDecodedBinary = Binary.FromList(xored),
asText = Text.FromBinary(asDecodedBinary, TextEncoding.Ascii)
in
asText
However, without the CodeKey, I can't check if this works or not.
Thanks a lot for your support!
The CodeKey is the very first line (1234) of the code section.
I added the function with the line
CodeKey = Text.Proper("1234#"),
(with # and without # as this doesn't make a difference within VBA)When Using the function with the input 5A56585D5D the result is kdkil instead of hello
Any Idea what I made wrong?
Hi @Anonymous ,
CodeKey = Text.Proper("1234#"),
(with # and without # as this doesn't make a difference within VBA)
One note:
In Power Query Editor, with "#" and without "#" is not the same. When using @artemus 's method, it is needed to remove "#" in your expression.
Best regards
Icey
If this post helps, then consider Accepting it as the solution to help other members find it faster.
Looks like I didn't properly translate the VBA text offset with the Power Query offset.
This should work:
= (DataIn as text) as text =>
let
asBinary = Binary.FromText(DataIn, BinaryEncoding.Hex),
numbers = Binary.ToList(asBinary),
xored = List.Transform({0 .. List.Count(numbers) - 1}, each
Number.BitwiseXor(numbers{_}, Character.ToNumber(Text.At(CodeKey, Number.Mod(_ + 1, Text.Length(CodeKey)))))
),
asDecodedBinary = Binary.FromList(xored),
asText = Text.FromBinary(asDecodedBinary, TextEncoding.Ascii)
in
asText
If you have recently started exploring Fabric, we'd love to hear how it's going. Your feedback can help with product improvements.
A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.
Share feedback directly with Fabric product managers, participate in targeted research studies and influence the Fabric roadmap.
| User | Count |
|---|---|
| 5 | |
| 3 | |
| 3 | |
| 2 | |
| 2 |
| User | Count |
|---|---|
| 9 | |
| 8 | |
| 7 | |
| 7 | |
| 5 |