とあるwebサイトにjavascriptでパスがかかっていたので、ソースを読んだのですがなぜそうなるのかがわかりませんでした。
javascriptの勉強をするために、どういう仕組みでパスをかけているのかを教えて下さい。
(パスを教えてくださいと言っているわけではありません。私のそのサイトへの入室を許可されているのでパスは知っています。)
どの変数をどこへ渡してどうこう程度でいいのでお願いします。
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
function _HpbChkPwd(keyin,escEncrypted,defaultUrl,target)
{
varencrypted = unescape(escEncrypted);
var indexbase = " !\"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";
var passlen = keyin.length;
var enqlen = encrypted.length;
var decrypted = "";
var decryptedPassword = "";
var decryptedPath = "";
var targetUrl = "";
var i, j, k, chr1, chr2, nbase;
var needPassword = "%u30D1%u30B9%u30EF%u30FC%u30C9%u3092%u5165%u529B%u3057%u3066%u304F%u3060%u3055%u3044%u3002";
var badPassword = "%u30D1%u30B9%u30EF%u30FC%u30C9%u304C%u6B63%u3057%u304F%u3042%u308A%u307E%u305B%u3093%u3002";
if (passlen <= 0)
{
alert(unescape(needPassword));
return ;
}
for (i = 0, j = passlen - 1, k = 0 ; i < enqlen ; i++, j--, k=0)
{
if (j < 0)
{
j = passlen - 1;
}
chr1 = indexbase.indexOf(keyin.charAt(j));
chr2 = indexbase.indexOf(encrypted.charAt(i));
if (chr2 < (chr1 + j))
{
nbase = (chr1 + j - chr2) / 0x5f;
k += (0x5f * Math.ceil(nbase));
}
k += (chr2 - chr1 - j);
decrypted += indexbase.charAt(k);
}
if (typeof(opener) == "undefined")
{
window.close();
return ;
}
if ((typeof(opener.closed) == "unknown") || opener.closed)
{
window.close();
return ;
}
opener.document.isOpened = false;
decryptedPassword = decrypted.substring(decrypted.length - passlen, decrypted.length);
if (keyin == decryptedPassword)
{
decryptedPath = decrypted.substring(0, decrypted.length - passlen);
passlen = decryptedPath.length;
for (i = 0 ; i < passlen ; i++)
{
chr1 = decryptedPath.charAt(i);
if (chr1 == "%")
{
chr2 = decryptedPath.substring(i, i+6);
targetUrl += chr2;
i += 11;
}
else
targetUrl += chr1;
}
if ((typeof(opener.closed) != "unknown") && ! opener.closed)
opener.open(targetUrl,"_blank");
window.close();
}
else
{
if (defaultUrl.length)
{
if ((typeof(opener.closed) != "unknown") && ! opener.closed)
opener.open(defaultUrl,"_blank");
}
else
{
alert(unescape(badPassword));
}
window.close();
}
}
//-->
</SCRIPT>
</HEAD>
<BODY onload="document.keyinform.keyin.focus()" onblur="document.keyinform.keyin.focus()" onerror="window.close();">
<DIV align="center">
<P>パスワードを入力してください。</P>
<FORM name="keyinform" method="POST" onsubmit="_HpbChkPwd(keyinform.keyin.value,'ztt%24syPF%5B%5E%5ErMaRUIPOFM','http://yahoo.co.jp/','nakami');return false;">
<INPUT size="20" type="password" name="keyin">
<INPUT type="button" name="CheckPassword" value="OK" onclick="_HpbChkPwd(keyinform.keyin.value,'ztt%24syPF%5B%5E%5ErMaRUIPOFM','http://yahoo.co.jp/','nakami');">
No.1ベストアンサー
- 回答日時:
パスワードを知っているから解析しても良いというものではありません。
この質問は禁止事項の一覧に明記はされていませんが、
ソフトウェアの逆アセンブルと同様の作業であり、著作権法に反する可能性も高いと思われます。
また、この投稿は引用の範囲を超えていると思われます。
私のこの投稿も質問に対する回答ではありませんので、BBSの禁止事項に抵触すると思いますが、あえて投稿させていただきました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- JavaScript コードレビューをお願いします。 1 2022/07/16 05:38
- JavaScript スマフォではボタンを表示させたくない 2 2023/01/20 14:26
- JavaScript JAVASCRIPT 2 2022/04/15 15:10
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript HTMLでJavaScriptを使ってパスワードの強化判定のプログラムを作成しています。 一通り作っ 2 2022/10/19 01:41
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ローカルにあるファイルを検索...
-
googleスプレッドシートのApps ...
-
C#OpenCv V4にのエラーに関する...
-
なぜmatchメソッドがエラーにな...
-
google apps scriptの終了のさせ方
-
テーブルセル内のinput要素のna...
-
GASでundefinedエラーが出ます
-
シンプルなweb版スタンプラリー...
-
イラレでナンバリングする方法
-
C言語の質問です HTMLでこのよ...
-
この将棋プログラムに王様ゲッ...
-
javaScript textareaの一行あた...
-
gas スプレッドシートがアクテ...
-
VSCODE[Python]の設定について
-
翌月を取得するGASが分かりません
-
四捨五入について
-
javascriptでテーブルに追加し...
-
Jscriptからのオープン
-
ASP.NET MVCでObjectをjsに渡す
-
C#で、ContextMenuStripに動的...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
google apps scriptの終了のさせ方
-
C#OpenCv V4にのエラーに関する...
-
なぜmatchメソッドがエラーにな...
-
GASでundefinedエラーが出ます
-
ジェネレーターの作り方
-
html javascript リンク先アド...
-
gas スプレッドシートがアクテ...
-
翌月を取得するGASが分かりません
-
ASP.NETのコントロールの値をJa...
-
C# 演算 奇数と偶数 表現の仕方
-
javascriptでiframeのURL変更は?
-
C#で、ContextMenuStripに動的...
-
ASP.NET MVCでObjectをjsに渡す
-
1日1回引けるJavaScriptおみく...
-
javascriptでテーブルに追加し...
-
JavaScriptを使って毎日決まっ...
-
googleスプレッドシートのApps ...
-
JavaScriptで文字列の特定文字...
-
アクセス時からのカウントダウ...
-
ローカルにあるファイルを検索...
おすすめ情報