надеялся, что кто-нибудь сможет мне помочь.
Мне очень нужен этот код VB.NET, преобразованный в PHP.
Это инструкции, которые я получил:
Чтобы проверить ваше шифрование, зашифруйте следующее слово этими ключами ипроверьте, получаете ли вы тот же результат:
Текст для шифрования: MyPassword
Солевой ключ: * & ^% $ # @!
Ключ PBE: FWV70700
PBE IV: WEBSV
ПРИМЕЧАНИЕ:
Зашифрованный текст: A + V3JATKUt / T91HiF23eOA ==
Ниже приведен короткий фрагмент кода VB.Net, который будет выполнять шифрование, как нам нужно.Программа VB имеет форму (From1) с двумя текстовыми полями (TextBox1 и TextBox2) и одной кнопкой (Button1):
VB.NET Функция:
Imports System
Imports System.IO
Imports System.Xml
Imports System.Text
Imports System.Security.Cryptography
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
TextBox2.Text = EncryptText(TextBox1.Text)
End Sub
Public Shared Function EncryptText(ByVal strText As String) As String
Dim pdbPassword As PasswordDeriveBytes
Dim pdbIV As PasswordDeriveBytes
Dim DES As New DESCryptoServiceProvider
Dim salt() As Byte = {Asc("*"), Asc("&"), Asc("^"), Asc("%"), Asc("$"), Asc("#"), Asc("@"), Asc("!")}
Dim ms As New System.IO.MemoryStream
Dim cs As CryptoStream
Dim plainText As String = strText
Dim plainBytes() As Byte
plainBytes = System.Text.Encoding.UTF8.GetBytes(plainText)
pdbPassword = New PasswordDeriveBytes("FWV70700", salt)
pdbPassword.HashName = "SHA1"
pdbPassword.IterationCount = 1000
DES.Key = pdbPassword.GetBytes(8)
pdbIV = New PasswordDeriveBytes("WEBSV", salt)
pdbIV.HashName = "SHA1"
pdbIV.IterationCount = 1000
DES.IV = pdbIV.GetBytes(8)
cs = New CryptoStream(ms, DES.CreateEncryptor, CryptoStreamMode.Write)
cs.Write(plainBytes, 0, plainBytes.Length)
cs.FlushFinalBlock()
Return Convert.ToBase64String(ms.ToArray)
End Function
Может ли кто-нибудь конвертировать это в PHP для меня?