目錄
一、簡介
Rot13是一種簡易的替換式加密算法,也稱爲迴轉13位,最早是用於英文網站上用於隱藏八卦、妙句或者髒話的工具。
二、算法原理
原理上來說是對26個小寫字母以及26個大寫字母進行操作,對原有字母的ASCII值 + 13或者ASCII-13,然後找到計算後的ASCII值對應的字母。通過這樣的規則將一個字母替換爲另一個字母,從而達到加密的目的。
規則如下:
a-m 對應替換爲 n-z
n-z 對應替換爲 a- m
A-M 對應替換爲 N-Z
N-Z 對應替換爲A-M
其他字符:例如數字、空白字符以及其他字符均保持不變,並且替換後大小寫不會改變(小寫a替換後是小寫n,而不是大寫N)
三、舉例
現在有字符串Virtus_163,我們按照上面的規則轉碼:
V => ASCII = 86 ASCII-13=73 對應的字母爲:I
i => ASCII = 105 ASCII+13 = 118 對應的字母爲: v
四、加密算法實現
private static String rot13(String input) {
if (TextUtils.isEmpty(input)) {
return null;
}
StringBuffer sb = new StringBuffer();
for (int i = 0; i < input.length(); i++) {
char c = input.charAt(i);
if (c >= 'a' && c <= 'm') {
c += 13;
} else if (c >= 'A' && c <= 'M') {
c += 13;
} else if (c >= 'n' && c <= 'z') {
c -= 13;
} else if (c >= 'N' && c <= 'Z') {
c -= 13;
}
sb.append(c);
}
return sb.toString();
}
五、特點
是弱加密方式,本身是自反的,只要根據算法規則轉化爲實際結果
聯繫方式:
QQ:719074460