Я пытаюсь зашифровать текст / строку в 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: (
заранее спасибо
с наилучшими пожеланиями