我正在使用下面的方法對給定的文本進行編碼。使用ASCII解碼編碼文本
static long encodeText(String text) {
long l = 31;
for (int i = 0; i < text.length(); i++) {
l = l * 47 + text.getBytes()[i] % 97;
}
return l;
}
當我打電話上述方法作爲encodeText("stackoverflow")
,返回編碼文本3818417496786881978
。
現在我想提供編碼文本並獲取字符串值。例如,如果我給3818417496786881978
至decodeText(long encoded)
,我需要輸出爲stackoverflow
。
static String decodeText(long encoded) {
String str = null;
// decode steps here
return str;
}
我該怎麼做?
根據當前的「編碼」方案,這根本不起作用。如果你想實際加密某些東西,請使用真正的加密API。 (你在調用'text.getBytes()'方面沒有指定編碼等其他問題,等等......) –
你的編碼的目的是什麼?它是加密嗎?如果是這樣,爲什麼不使用java支持的標準加密機制? –
問題是您無法正確指定數字中的分隔符。如果所有的文字變成2位數字,那麼這是可能的。如果長度可變,那麼很可能無法解碼。 – EpicPandaForce