Проблема шифрования / дешифрования Chilkat между PHP И. NET - PullRequest
1 голос
/ 21 февраля 2020

Я пытаюсь зашифровать текст / строку в vb. net, перейти к сценарию php и расшифровать его, используя библиотеку chilkat crypt2 для обоих языков кодирования.

отлично работает для текста не в Юникоде с кодировка по умолчанию:)

, но когда я пытаюсь зашифровать и расшифровать текст Unicode, используя кодировку "utf-8", он не работает ..

php не удалось правильно расшифровать его :( но если я расшифрую тот же зашифрованный текст, используя vb. net, он будет работать как следует বরকাতুহু

шифруется VB * тысяча сорок-один * функция:.

PQ7i4 / 4kvMKR64jD4Y8umQJAR9 + vAuhZ + bbdtZ8NzBJpPtNtL6c42lR0I1LAdeecI + D3n111CQQffHbMXL1xaccFQR0fqztmJawAMBL3N / VA4Lt45nRmnqc72tKwl0V3Fgayiysm0YsMW6N7hPkI6rqRn2smo9Xc8LEb4kfP / B / HkWhFP70mCsM7t8DUN2Sj

здесь следует код:

vb. net код:

Public Function fCryption(strRaw As String, bolEncrypt As Boolean, strPass As String) As String
    Dim objCrypt As Chilkat.Crypt2
    Dim bolCryptReturn As Boolean
    Dim strHexKey As String
    Dim strReturn As String
    objCrypt = New Chilkat.Crypt2
    bolCryptReturn = objCrypt.UnlockComponent("Here Your Own Key Goes")
    objCrypt.Charset = "utf-8"
    objCrypt.CryptAlgorithm = "aes"
    objCrypt.CipherMode = "cbc"
    objCrypt.KeyLength = 256
    strHexKey = objCrypt.GenEncodedSecretKey(strPass, "hex")
    objCrypt.SetEncodedKey(strHexKey, "hex")
    objCrypt.EncodingMode = "base64"
    If bolEncrypt = True Then
        strReturn = objCrypt.EncryptStringENC(strRaw)
    Else
        strReturn = objCrypt.DecryptStringENC(strRaw)
    End If
    objCrypt.Dispose()
    objCrypt = Nothing
    Return strReturn
End Function

теперь php function:

function fCryption($strRaw, $bolEncrypt, $strPass)
{
    $objCrypt = new CkCrypt2();
    $objCrypt->UnlockComponent('Here Your Own Key Goes');
    $objCrypt->put_Charset('utf-8');        
    $objCrypt->put_CryptAlgorithm('aes');
    $objCrypt->put_CipherMode('cbc');
    $objCrypt->put_KeyLength(256);
    $strHexKey = $objCrypt->genEncodedSecretKey($strPass, 'hex');
    $objCrypt->SetEncodedKey($strHexKey, 'hex');
    $objCrypt->put_EncodingMode('base64');
    if($bolEncrypt == true)
    {
        $strReturn = $objCrypt->encryptStringENC($strRaw);
    }
    else
    {
        $strReturn = $objCrypt->decryptStringENC($strRaw);
    }
    unset($objCrypt);
    return $strReturn;
}

и вот что php возвращает функцию, когда я пытаюсь расшифровать:

-- - -

, поэтому я не могу найти причину, почему та же функция для той же библиотеки прекрасно работает на VB. net, но не на php: (

заранее спасибо

с наилучшими пожеланиями

...