谁能把这段java解密的代码翻译成VB,万分感谢

pauljan 2008-04-02 11:46:51
public static byte[] xEncode(String str, String secret) {
if (str == null || secret == null) return null;
byte bytes[] = str.getBytes();
byte xors[] = secret.getBytes();
for (int i=0;i<bytes.length;i++) {
byte b = (byte) ( (bytes[i]-1) ^ xors[ i % xors.length ] );
bytes[i] = (b == 0 ? (byte)255 :b);
}
return bytes;
}
...全文
79 9 打赏 收藏 举报
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
meiZiNick 2008-04-30
有点难度哦
  • 打赏
  • 举报
回复
lqq7072000 2008-04-02
'写一个函数对两个字符串进行按字节异或
private function dostrxor(str1 as string, str2 as string) as string
dim i as integer
dim b1, b2, rtval as string

for i = 1 to len(str1)
b1 = mid(str1, i, 1)
b2 = mid(str2, i, 1)
rtval = rtval & chr(asc(b1) xor asc(b2))
next
dostrxor = rtval
end function
  • 打赏
  • 举报
回复
Public Function xEncode(ByVal strsrc As String, ByVal secret As String) As Byte()

Dim bs() As Byte
Dim xs() As Byte
bs = StrConv(strsrc, vbFromUnicode)
xs = StrConv(secret, vbFromUnicode)

Dim l As Long
Dim xl As Long
l = UBound(bs)
xl = UBound(xs)

If l = 0 Or xl = 0 Then
xEncode = vbNullString
Exit Function
End If

Dim i As Long
Dim b As Byte
For i = 0 To l - 1
b = (bs(i) - 1) Xor xs(i Mod xl)
bs(i) = IIf(b = 0, 255, b)
Next i

xEncode = bs
End Function
  • 打赏
  • 举报
回复
lqq7072000 2008-04-02
是不是两个字符串表达式按位异或运算?
  • 打赏
  • 举报
回复
东方之珠 2008-04-02
up
  • 打赏
  • 举报
回复
jadeluo 2008-04-02
Java中String类的getBytes()方法不带参数的话, 好象返回的是Unicode编码的字节数组。
  • 打赏
  • 举报
回复
luxingchang_2008 2008-04-02
我也支持一下三楼的
这样是可以的
  • 打赏
  • 举报
回复
Albert韩 2008-04-02
我也支持一下三楼的
  • 打赏
  • 举报
回复
舉杯邀明月 2008-04-02
感觉3楼的代码可行.
  • 打赏
  • 举报
回复
发帖
VB基础类

7617

社区成员

VB 基础类
社区管理员
  • VB基础类社区
加入社区
帖子事件
创建了帖子
2008-04-02 11:46
社区公告
暂无公告