将 Vb.net 转换为 Php
Convert Vb.net To Php
早上好工程师们
这个VB.Net代码负责加密一个密码
Public Function Encrypt(ByVal clave As String) As String
' Defino variables
Dim indice As Integer = 1
Dim largo As Integer = 0
Dim final As String = ""
largo = Len(Trim(clave))
Dim caracteres(largo) As String
For indice = 1 To largo
caracteres(indice) = Mid(clave, indice, 1)
caracteres(indice) = Chr(Asc(caracteres(indice)) + indice)
final = final & caracteres(indice)
Next indice
Return final
End Function
这就是我在 php 中所做的代码,但我在某处失败了,因为我没有得到想要的结果
public static function encryption($clave){
$indice = 0;
$largo = 0;
$final = '';
$largo = strlen(trim($clave));
$caracteres = array();
for ($indice; $indice < $largo; $indice++) {
$caracteres[$indice] = substr($clave, $indice, 1);
$caracteres[$indice] = chr(ord($caracteres[$indice]) + $indice);
$final = $final.$caracteres[$indice];
}
return $final;
}
例如,在 VB.Net 中,12345 密钥在 2468 中加密:在 PHP 中,相同的密钥在 13579
中加密
我将感谢所有能帮助我找出我失败的地方以及如何解决的人
谢谢
你们非常非常亲近!您只需要重新添加,因为 $indice
在 VB.Net 中是从一开始的,但在执行数学运算时在 PHP 中是从零开始的。
所以改变这个:
$caracteres[$indice] = chr(ord($caracteres[$indice]) + $indice);
为此:
$caracteres[$indice] = chr(ord($caracteres[$indice]) + ($indice + 1));
早上好工程师们
这个VB.Net代码负责加密一个密码
Public Function Encrypt(ByVal clave As String) As String
' Defino variables
Dim indice As Integer = 1
Dim largo As Integer = 0
Dim final As String = ""
largo = Len(Trim(clave))
Dim caracteres(largo) As String
For indice = 1 To largo
caracteres(indice) = Mid(clave, indice, 1)
caracteres(indice) = Chr(Asc(caracteres(indice)) + indice)
final = final & caracteres(indice)
Next indice
Return final
End Function
这就是我在 php 中所做的代码,但我在某处失败了,因为我没有得到想要的结果
public static function encryption($clave){
$indice = 0;
$largo = 0;
$final = '';
$largo = strlen(trim($clave));
$caracteres = array();
for ($indice; $indice < $largo; $indice++) {
$caracteres[$indice] = substr($clave, $indice, 1);
$caracteres[$indice] = chr(ord($caracteres[$indice]) + $indice);
$final = $final.$caracteres[$indice];
}
return $final;
}
例如,在 VB.Net 中,12345 密钥在 2468 中加密:在 PHP 中,相同的密钥在 13579
中加密我将感谢所有能帮助我找出我失败的地方以及如何解决的人
谢谢
你们非常非常亲近!您只需要重新添加,因为 $indice
在 VB.Net 中是从一开始的,但在执行数学运算时在 PHP 中是从零开始的。
所以改变这个:
$caracteres[$indice] = chr(ord($caracteres[$indice]) + $indice);
为此:
$caracteres[$indice] = chr(ord($caracteres[$indice]) + ($indice + 1));