Function DoXorEncrypt(ByRef msFileText As String, ByVal xorInt As Long) As String
'本函数用于对msFileText中的字符串进行XOR 27操作,英文或汉字均作为一个字符来处理,
'加密方调用该模块用于加密,解密方调用该模块用于解密。
'使用Unicode函数AscW 、ChrW可正确处理所有汉字
'使用ASC函数Asc 、Chr无法正确处理所有汉字 Dim intC As Long
Dim intB As Long
Dim lngI As Long
Dim intTemp As Integer intTemp = xorInt Mod 10 '由于一些能被10整除的数据作为异或值时会出错,所以对可以被10整除的数字加1
If (xorInt Mod 10) = 0 Then
xorInt = xorInt + 1
End If For lngI = 1 To Len(msFileText)
intC = AscW(Mid(msFileText, lngI, 1))
'选用<=127可正确处理汉字,ChrW(n):n 有一个范围
Mid(msFileText, lngI, 1) = ChrW(intC Xor xorInt)
Next lngI
End Function
'本函数用于对msFileText中的字符串进行XOR 27操作,英文或汉字均作为一个字符来处理,
'加密方调用该模块用于加密,解密方调用该模块用于解密。
'使用Unicode函数AscW 、ChrW可正确处理所有汉字
'使用ASC函数Asc 、Chr无法正确处理所有汉字 Dim intC As Long
Dim intB As Long
Dim lngI As Long
Dim intTemp As Integer intTemp = xorInt Mod 10 '由于一些能被10整除的数据作为异或值时会出错,所以对可以被10整除的数字加1
If (xorInt Mod 10) = 0 Then
xorInt = xorInt + 1
End If For lngI = 1 To Len(msFileText)
intC = AscW(Mid(msFileText, lngI, 1))
'选用<=127可正确处理汉字,ChrW(n):n 有一个范围
Mid(msFileText, lngI, 1) = ChrW(intC Xor xorInt)
Next lngI
End Function
http://www.developerfusion.com/utilities/convertvbtocsharp.aspx
{
long intC;
long intB;
long lngI;
int intTemp;
intTemp = xorInt % 10;
if ((xorInt % 10) == 0) {
xorInt = xorInt + 1;
}
for (int lngI = 1; lngI <= Len(msFileText); lngI++) {
intC = AscW(Mid(msFileText, lngI, 1));
Mid(msFileText, lngI, 1) = ChrW(intC ^ xorInt);
}
}
public string DoXorEncrypt(string msFileText, int xorInt)
{
int intC;
long intTemp;
string result="";
intTemp = xorInt % 10;
if ((xorInt % 10) == 0)
{
xorInt = xorInt + 1;
}
for (int i = 0; i < msFileText.Length; i++)
{
intC = Microsoft.VisualBasic.Strings.AscW(msFileText[i]);
result += Microsoft.VisualBasic.Strings.ChrW(intC ^ xorInt).ToString();
}
return result;
}
string DoXorEncrypt(ref string msFileText, long xorInt)
{
long intC;
long intB;
long lngI;
int intTemp;
intTemp = xorInt % 10;
if ((xorInt % 10) == 0) {
xorInt = xorInt + 1;
}
for (int lngI = 1; lngI <= Microsoft.VisualBasic.Strings.Len(msFileText); lngI++) {
intC = Microsoft.VisualBasic.Strings.AscW(Microsoft.VisualBasic.Strings.Mid(msFileText, lngI, 1));
Microsoft.VisualBasic.Strings.Mid(msFileText, lngI, 1) = Microsoft.VisualBasic.Strings.ChrW(intC ^ xorInt);
}
}
{
long intC;
long intB;
long lngI;
int intTemp;
intTemp = xorInt % 10;
if ((xorInt % 10) == 0)
{
xorInt = xorInt + 1;
}
for (lngI = 1; lngI <= msFileText.Length; lngI++)
{
intC = Strings.AscW(msFileText.Substring(lngI - 1, 1));
StringType.MidStmtStr(ref msFileText, lngI, 1, Strings.ChrW(intC ^ orInt));
}
}