jsはURL URLを16進数に変換して暗号化と復号関数を行います。
十六進(Hexadecimal)はコンピュータにおけるデータの表示方法です。同じ日の日常生活での表示方法は違います。0-9、A-Fからなります。文字は大文字と小文字を区別しません。10進数との対応関係は、0-9は0-9に対応します。A-Fは10-15に対応するN進数は0~(N-1)の数で表してもいいです。9を超えるのはアルファベットA-Fです。異なるコンピュータシステム、プログラミング言語は、16進数に対して、0 xプレフィックスを追加するなどの表現方法が異なる。
ここではオンライン変換のためのツールを紹介します。
php関数:
bin 2 hex(str)は文字列を16進数に変換します。
bin 2 hex(hex)は16進数を文字列に変換します。
下の関数はすべて単一の変換です。
文字列変換16進数
Dcument.write(sttoHexjb 51("https://www.jb51.net");
出力
\x 68\x 74\x 74\x 70\x 73\x 3 a\x 2 f\x 2 f\x 77\x 77\x 77\x 2 e\x 6 a\x 62\x 35\x 31\x 2 e\x 6 e\x 65\x 74
見たいのですか?いいえ、直接jsのalertまたはdocument.write(")を使います。
暗号化された文字列が見えます。アドレスや文字などを隠しやすいです。
テストの時に、例えばchromeで定義してもいいです。
str=「\x 68\x 74\x 70\x 73\x 3 a\x 2 f\x 2 f\x 77\x 77\x 2 e\x 6 a\x 62\x 35\x 6 e\x 6 e\x 6 e\x 65\x 74」
以下は補充です
Js文字列と16進数の相互変換
開発中、文字列と16進、2進数の間の相互変換はよく使われます。特に中国語の暗号化に関わる場合、中国語を16進数に変換する必要があります。具体的な変換方法を説明します。
1、文字列を16進数に変換します。
主にcharCodeAt()を使用して、この方法は指定された索引位置にある文字のUnicoode値を返します。
var str="abcde"
ストリングスToHex(str)
2、16進数を文字列に変換します。
この方法は主にfrom CharCodeを使用してUnicodeコードを対応する文字に変換します。
var str=「676865」
ストリングスToHex(str)
3、パーrseInt()方法で変換する
parseInt(string,radix)方法はStringタイプにしか変換できず、他のタイプはすべてNaN(数字ではない)に戻ります。stringは変換される文字を表し、radixは変換される進数を表し、値は2~36の間にある。
parseInt(「bc」、16)//文字列bcを16進数に変換した結果を表します。188
parseInt("10",8)//文字列10を8進数に変換した結果を表します。
parseInt(「10」、2);/文字列10を2進に変換した結果を表します。
Javascript\xバックスラッシュx 16進編成復号
jsの中で\xの先頭のは通常16進符号化のデータで、下のコードはコーデックを実現します。
復号
decode('\x 5 f\x 63\x 61\x 6 e\x 67\x 65\x 49\x 74\x 65\x 6 d\x 43\x 72\x 6 f\x 73\x 4 c\x 61\x 79\x 65\x 72')
「_」changeItem Cross Layer"
コーディング
エンコードchangeItem Cross Layer")
「\x 5 f\x 63\x 68\x 61\x 6 e\x 67\x 65\x 74\x 65\x 6 d\x 43\x 72\x 6 f\x 73\x 4 c\x 61\x 79\x 65\x 72」
以上はjsがURL URLを16進に変えて暗号化と解読関数の詳しい内容を暗号化して、更にjsが文字を16進に変換する資料に関しては他の関連記事に注目してください。
ここではオンライン変換のためのツールを紹介します。
php関数:
bin 2 hex(str)は文字列を16進数に変換します。
bin 2 hex(hex)は16進数を文字列に変換します。
下の関数はすべて単一の変換です。
文字列変換16進数
function strToHexCharCode(str) {
if(str === "")
return "";
var hexCharCode = [];
hexCharCode.push("0x");
for(var i = 0; i < str.length; i++) {
hexCharCode.push((str.charCodeAt(i)).toString(16));
}
return hexCharCode.join("");
}
16進変換文字列
function hexCharCodeToStr(hexCharCodeStr) {
var trimedStr = hexCharCodeStr.trim();
var rawStr = trimedStr.substr(0,2).toLowerCase() === "0x"?trimedStr.substr(2):trimedStr;
var len = rawStr.length;
if(len % 2 !== 0) {
alert("Illegal Format ASCII Code!");
return "";
}
var curCharCode;
var resultStr = [];
for(var i = 0; i < len;i = i + 2) {
curCharCode = parseInt(rawStr.substr(i, 2), 16); // ASCII Code Value
resultStr.push(String.fromCharCode(curCharCode));
}
return resultStr.join("");
}
私たちが修正したサポートはURLを\xコードに変換したものです。
function strToHexjb51(str) {
if(str === "")
return "";
var hexCharCode = [];
for(var i = 0; i < str.length; i++) {
hexCharCode.push("\\x");
hexCharCode.push((str.charCodeAt(i)).toString(16));
}
return hexCharCode.join("");
}
例えばDcument.write(sttoHexjb 51("https://www.jb51.net");
出力
\x 68\x 74\x 74\x 70\x 73\x 3 a\x 2 f\x 2 f\x 77\x 77\x 77\x 2 e\x 6 a\x 62\x 35\x 31\x 2 e\x 6 e\x 65\x 74
見たいのですか?いいえ、直接jsのalertまたはdocument.write(")を使います。
暗号化された文字列が見えます。アドレスや文字などを隠しやすいです。
テストの時に、例えばchromeで定義してもいいです。
str=「\x 68\x 74\x 70\x 73\x 3 a\x 2 f\x 2 f\x 77\x 77\x 2 e\x 6 a\x 62\x 35\x 6 e\x 6 e\x 6 e\x 65\x 74」
以下は補充です
Js文字列と16進数の相互変換
開発中、文字列と16進、2進数の間の相互変換はよく使われます。特に中国語の暗号化に関わる場合、中国語を16進数に変換する必要があります。具体的な変換方法を説明します。
1、文字列を16進数に変換します。
主にcharCodeAt()を使用して、この方法は指定された索引位置にある文字のUnicoode値を返します。
function stringToHex(str){
var val="";
for(var i = 0; i < str.length; i++){
if(val == "")
val = str.charCodeAt(i).toString(16);
else
val += "," + str.charCodeAt(i).toString(16);
}
return val;
}
呼び出し方法:var str="abcde"
ストリングスToHex(str)
2、16進数を文字列に変換します。
この方法は主にfrom CharCodeを使用してUnicodeコードを対応する文字に変換します。
function hexToString(str){
var val="";
var arr = str.split(",");
for(arr i = 0; i < arr.length; i++){
val += arr[i].fromCharCode(i);
}
return val;
}
呼び出し方法:var str=「676865」
ストリングスToHex(str)
3、パーrseInt()方法で変換する
parseInt(string,radix)方法はStringタイプにしか変換できず、他のタイプはすべてNaN(数字ではない)に戻ります。stringは変換される文字を表し、radixは変換される進数を表し、値は2~36の間にある。
parseInt(「bc」、16)//文字列bcを16進数に変換した結果を表します。188
parseInt("10",8)//文字列10を8進数に変換した結果を表します。
parseInt(「10」、2);/文字列10を2進に変換した結果を表します。
Javascript\xバックスラッシュx 16進編成復号
jsの中で\xの先頭のは通常16進符号化のデータで、下のコードはコーデックを実現します。
復号
function decode(str){
return str.replace(/\\x(\w{2})/g,function(_,$1){ return String.fromCharCode(parseInt($1,16)) });
}
eg.decode('\x 5 f\x 63\x 61\x 6 e\x 67\x 65\x 49\x 74\x 65\x 6 d\x 43\x 72\x 6 f\x 73\x 4 c\x 61\x 79\x 65\x 72')
「_」changeItem Cross Layer"
コーディング
function encode(str){
return str.replace(/(\w)/g,function(_,$1){ return "\\x"+ $1.charCodeAt(0).toString(16) });
}
eg.エンコードchangeItem Cross Layer")
「\x 5 f\x 63\x 68\x 61\x 6 e\x 67\x 65\x 74\x 65\x 6 d\x 43\x 72\x 6 f\x 73\x 4 c\x 61\x 79\x 65\x 72」
以上はjsがURL URLを16進に変えて暗号化と解読関数の詳しい内容を暗号化して、更にjsが文字を16進に変換する資料に関しては他の関連記事に注目してください。