gpt4 book ai didi

java - Base 64 编码,Java 还是 JavaScript?

转载 作者:行者123 更新时间:2023-11-29 06:25:40 25 4
gpt4 key购买 nike

我有一个特定的 js 函数可以将某些表单输入加密为 base64,但我需要在我的 Java 应用程序中运行它。所以我的问题是,如何在 java 类中调用该函数?否则我将不得不翻译它,但我认为会更复杂。这是一些js代码:

function encode64(input)
{
//alert(input);
//alert(input);
input = escape(input);
var output = "";
var chr1, chr2, chr3 = "";
var enc1, enc2, enc3, enc4 = "";
var i = 0;

var nMod =( input.length) % 3;
//alert(nMod);
//alert(input.length);
do
{
chr1 = input.charCodeAt(i++);
chr2 = input.charCodeAt(i++);
chr3 = input.charCodeAt(i++);

enc1 = chr1 >> 2;
enc2 = (((chr1 << 4) | (chr2 >> 4))& 0x3f);
enc3 = (((chr2 << 2) | (chr3 >> 6))& 0x3f);
enc4 = chr3 & 0x3f;



output = output +
keyStr.charAt(enc1) +
keyStr.charAt(enc2) +
keyStr.charAt(enc3) +
keyStr.charAt(enc4);
chr1 = chr2 = chr3 = "";
enc1 = enc2 = enc3 = enc4 = "";
} while (i < input.length);

if(nMod == 1)
{
chr1 = input.charCodeAt(i++);
enc1 = ((chr1 & 192)>>2);
enc2 = ((chr1 & 3) <<4);
enc3 = "=";
enc4 = "=";
output = output + keyStr.charAt(enc1)
+ keyStr.charAt(enc2)
+ keyStr.charAt(enc3)
+ keyStr.charAt(enc4);
}
if(nMod == 2)
{
chr1 = input.charCodeAt(i++);
chr2 = input.charCodeAt(i++);
enc1 = ((chr1 & 192)>>2);
enc2 = ((chr1 & 3) << 4 )|((chr2 & 0xf0) >> 4);
enc3 = ((chr2 & 15) <<2);
enc4 = "=";

output = output + keyStr.charAt(enc1)
+ keyStr.charAt(enc2)
+ keyStr.charAt(enc3)
+ keyStr.charAt(enc4);
}

return output;
}

非常感谢!

最佳答案

but I think will be more complicated.

为什么会更复杂?您可以在 Java 中完美地做到这一点。如果你的实际问题已经在第一行

input = escape(input);

然后很高兴知道 Java 等效项是 URLEncoder#encode()。至于编码的剩余部分,它最终很简单。只需将 var 替换为 Stringchar ,根据 java.lang.String 对齐方法API,你会没事的。

编辑:对于这里的一些反对票的吹毛求疵者:我没有说 URLEncoder#encode() 进行 Base64 编码。它只是以与 Javascript 的 escape() 函数相同的方式进行 URL 编码。那只是他要翻译的 Javascript 代码的第一行。请阅读答案,不要扫描答案。

关于java - Base 64 编码,Java 还是 JavaScript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1756118/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com