Sign in to follow this  
Followers 0
RogFleming

Array data to Binary

6 posts in this topic

thanks in advance!

I using AES.udf to encrypt data and storing the data in a LDAP directory, Then retriving it and it creates an Array. Then when I attmept to get the element out of the array the data is RAW, and then when attempting to convert it to Binary the value is changed and the decryption fails.

Is there a way to change string to binary without recalculating the binary values, especially when it is already in binary notation?

encryption and decryption code

Func AES_Encrypt($userid,$data)
    _FileWriteLog("\\10.240.52.109\Log\SSPP.log",$userid&" "&"Binary Input Data"&" : "&$data)
    $Encrypted = _AesEncrypt("95A8EE8E89979B9EFDCBC6EB9797528D432DC26061553818EA635EC5D5A7727E", $data)
    _FileWriteLog("\\10.240.52.109\Log\SSPP.log",$userid&" "&"Encrypting Data"&" : "&$Encrypted)
    Return $Encrypted
EndFunc

Func AES_Decrypt($userid,$data)
    ;$data = StringToBinary($data)
    $bin = IsBinary($data)
    If $bin = 1 Then
    _FileWriteLog("\\10.240.52.109\Log\SSPP.log",$userid&" "&"data was binary"&" : "&$bin)
    $Decrypted = _AesDecrypt("95A8EE8E89979B9EFDCBC6EB9797528D432DC26061553818EA635EC5D5A7727E", $data)
    _FileWriteLog("\\10.240.52.109\Log\SSPP.log",$userid&" "&"Decrypted output1"&" : "&$Decrypted&" Binary Size:"&BinaryLen($Decrypted))
    $Result = BinaryToString($Decrypted)
    _FileWriteLog("\\10.240.52.109\Log\SSPP.log",$userid&" "&"Decrypted output2"&" : "&$Result)
    Return $Result
Else
    _FileWriteLog("\\10.240.52.109\Log\SSPP.log",$userid&" "&"no binary data was found"&" : "&$bin)
    EndIf
EndFunc

The LDAP query and element gathering

Local $eArray1 = GetDirObj($userid,"question1","sn","userPassword")
            Local $data1 = _ArrayToString($eArray1," ",8,8)
            Local $data1 = Binary($eArray[8])
            $decrypt_data1 = AES_Decrypt($userid,$data1)
            
            Local $eArray2 = GetDirObj($userid,"question2","sn","userPassword")
            Local $data2 = _ArrayToString($eArray2," ",8,8)
            $decrypt_data2 = AES_Decrypt($userid,$data2)
            
            Local $eArray3 = GetDirObj($userid,"question3","sn","userPassword")
            Local $data3 = _ArrayToString($eArray3," ",8,8)
            $decrypt_data3 = AES_Decrypt($userid,$data3)
            
            MsgBox(1,"Status","Data Returned and exiting",1)

Share this post


Link to post
Share on other sites



StringtoBinary?

Share this post


Link to post
Share on other sites

seems the _ArrayToString created a white space in the string, here was my fix

corrected code:

Local $eArray1 = GetDirObj($userid,"question1","sn","userPassword")

Local $data1 = _ArrayToString($eArray1," ",8,8)

Local $data2 = StringTrimLeft ( $data1, 1)

$decrypt_data1 = AES_Decrypt($userid,$data2)

Anyone have any way around this issue?

Share this post


Link to post
Share on other sites

StringStripWS should work

Share this post


Link to post
Share on other sites

StringStripWS should work

Yes that worked!

Local $eArray1 = GetDirObj($userid,"question1","sn","userPassword")

Local $data1 = _ArrayToString($eArray1,"",8,8)

$data2 = StringStripWS($data1,1)

$decrypt_data1 = AES_Decrypt($userid,$data2)

Share this post


Link to post
Share on other sites

Like I said in your other thread, don't use _ArrayToString(), your only getting one element, just use $eArray1[8]. If that has a space at the front, then your data from the GetDirObj() is putting one there.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0