$coded .= substr($str, $i, $keylength) ^ $key* @key string
* @coded string一段简单的代码,就是很不明白这个异或的时候是对两个字符串做计算,看PHP文档说是把字符串转换成ASCII码后进行的计算。但是我进行对字符串转换为ASCII的处理,
/// <summary>
/// 获取ASC码
/// </summary>
/// <param name="Data"></param>
/// <returns></returns>
private static int ASC(String Data)
{
byte[] b = System.Text.Encoding.Default.GetBytes(Data);
string p = "";
for (int i = 0; i < b.Length; i++)
{
p += (int)b[i];
} return int.Parse(p);
}但是,这个方法根本就不行,很少的字符串都会返回一个超出int值范围的数字(很大很大)
我想知道PHP里面的字符串转换成ASCII是怎么一个过程? 和结果。
* @coded string一段简单的代码,就是很不明白这个异或的时候是对两个字符串做计算,看PHP文档说是把字符串转换成ASCII码后进行的计算。但是我进行对字符串转换为ASCII的处理,
/// <summary>
/// 获取ASC码
/// </summary>
/// <param name="Data"></param>
/// <returns></returns>
private static int ASC(String Data)
{
byte[] b = System.Text.Encoding.Default.GetBytes(Data);
string p = "";
for (int i = 0; i < b.Length; i++)
{
p += (int)b[i];
} return int.Parse(p);
}但是,这个方法根本就不行,很少的字符串都会返回一个超出int值范围的数字(很大很大)
我想知道PHP里面的字符串转换成ASCII是怎么一个过程? 和结果。
对字符做异或操作,一般用于加密
ord 取得字符内码 ord('a') ==> 97
chr 转换数值为字符内码 chr(97) ==> a$coded .= substr($str, $i, $keylength) ^ $key
内部动作为:
$coded .= chr( ord( substr($str, $i, $keylength) ) ^ $key )
问个问题,这个
ord( ‘abcd’ )的结果是 979899100 这样的一个int值吗?