Есть ли возможный способ конвертировать этот алгоритм из VBA в Javascript? - PullRequest
0 голосов
/ 24 апреля 2020

Я пытаюсь преобразовать функцию шифрования, которую я хотел бы использовать, из VBA в JAVA. Я решил большую часть программирования, но в настоящее время застрял, чтобы интегрировать алгоритм в мой Java код. Существуют ли функции, используемые в алгоритме, в Java?

Вот части кода, которые я преобразовал в Java,

function XorC(input){
var input=input.toString();
var key="testing";
var inputlength=input.length;
var keylength=key.length;
var i;

  if ((inputlength==0) || (keylength==0)){
    var XorC="Invalid arguments(s) used";
    return 0;
  }
  var checkx= input.substring(0,3);
  if (checkx=="JKX"){
        var bEncOrDec = "False"
        input = input.substring(3,inputlength) }
  else { 
  var bEncOrDec = "True"}

var byIn = input;
var byOut = input;
var byKey = key;

Часть, которая застряла,

var l = LBound(byKey);

  for (i = LBound(byIn); i<=(UBound(byIn) - 1);i=i+2){
    byOut[i] = ((byIn[i] + Not bEncOrDec) Xor byKey(l)) - bEncOrDec;
    l = l + 2;
    if l > UBound(byKey)  {
    l = LBound(byKey);}
    }   

И остальные коды,

  var XorC = byOut;
  if (bEncOrDec=="True"){
    XorC = "JKX" + XorC;}
  else{}
  return XorC;}

Если кто-то захочет увидеть исходные коды в VBA,

Function XorC(ByVal sData As String, ByVal sKey As String) As String
Application.EnableCancelKey = xlDisabled
Dim l As Long, i As Long, byIn() As Byte, byOut() As Byte, byKey() As Byte
Dim bEncOrDec As Boolean

If Len(sData) = 0 Or Len(sKey) = 0 Then XorC = "Invalid argument(s) used": Exit Function

If Left$(sData, 3) = "JKX" Then
    bEncOrDec = False
    sData = Mid$(sData, 4)
Else
    bEncOrDec = True
End If

byIn = sData
byOut = sData
byKey = sKey
l = LBound(byKey)
For i = LBound(byIn) To UBound(byIn) - 1 Step 2
    byOut(i) = ((byIn(i) + Not bEncOrDec) Xor byKey(l)) - bEncOrDec
    l = l + 2
    If l > UBound(byKey) Then l = LBound(byKey)
Next i
XorC = byOut
If bEncOrDec Then XorC = "JKX" & XorC

End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...