CH-J ToolsSSH によるサーバー管理
メニュー
公開済みのソース

CH-J Tools

特定のアプリケーションリリースのディレクトリとファイルを閲覧できます。

ソースの ZIP をダウンロード
CH-J / Server Manager 1704 ファイル
0.1.2-beta 追加日時: · ビルド日時:
index.html 追加日時: 日付の記録なし 10.8 KB · 82 行
コード ファイルをダウンロード
1<!doctype html>
2<html lang="en">
3<head>
4 <meta charset="utf-8">
5 <meta name="viewport" content="width=device-width,initial-scale=1">
6 <title data-i18n="Hash &amp; Checksum">Hash &amp; Checksum</title>
7 <link rel="stylesheet" href="styles.css">
8</head>
9<body>
10 <header class="topbar">
11 <div><p class="eyebrow">CH-J Tools</p><h1 data-i18n="Hash &amp; Checksum">Hash &amp; Checksum</h1></div>
12 <button id="closeButton" class="ghost" data-i18n="Close">Close</button>
13 </header>
14 <main>
15 <div class="privacy"><strong data-i18n="100% local.">100% local.</strong> <span data-i18n="File contents and digests never leave this computer. Files are available only through selections you confirm in the system dialog.">File contents and digests never leave this computer. Files are available only through selections you confirm in the system dialog.</span></div>
16 <nav class="tabs" aria-label="Hash tools" data-i18n-aria-label="Hash tools">
17 <button class="tab active" data-tab="calculate" data-i18n="Calculate">Calculate</button>
18 <button class="tab" data-tab="verify" data-i18n="Verify">Verify</button>
19 <button class="tab" data-tab="compare" data-i18n="Compare Files">Compare Files</button>
20 <button class="tab" data-tab="manifests" data-i18n="Manifests">Manifests</button>
21 <button class="tab" data-tab="openpgp" data-i18n="OpenPGP signature">OpenPGP signature</button>
22 </nav>
24 <section id="calculate" class="panel tab-panel active">
25 <div class="section-heading"><div><h2 data-i18n="Calculate">Calculate</h2><p data-i18n="Hash one file, a batch, or a directory. Directory symlinks are skipped.">Hash one file, a batch, or a directory. Directory symlinks are skipped.</p></div></div>
26 <div class="picker-row">
27 <select id="calculateMode" aria-label="Selection type" data-i18n-aria-label="Selection type"><option value="file" data-i18n="File">File</option><option value="multiple" data-i18n="Multiple Files">Multiple Files</option><option value="directory" data-i18n="Directory">Directory</option></select>
28 <button id="calculatePick" data-i18n="Choose…">Choose…</button><span id="calculateSelection" class="selection" data-i18n="Nothing selected">Nothing selected</span>
29 <label id="recursiveLabel" class="check hidden"><input id="recursive" type="checkbox"> <span data-i18n="Include subdirectories">Include subdirectories</span></label>
30 </div>
31 <div class="algorithm-toolbar"><h3 data-i18n="Algorithms">Algorithms</h3><input id="algorithmSearch" type="search" placeholder="Search algorithms" data-i18n-placeholder="Search algorithms" aria-label="Search algorithms" data-i18n-aria-label="Search algorithms"><label class="check"><input id="favoritesOnly" type="checkbox"> <span data-i18n="Favorites only">Favorites only</span></label><div><button id="recommended" class="small ghost" data-i18n="Recommended">Recommended</button><button id="selectAll" class="small ghost" data-i18n="Select all">Select all</button><button id="selectNone" class="small ghost" data-i18n="Clear">Clear</button></div></div>
32 <div id="algorithmList" class="algorithms"></div>
33 <div class="actions"><label><span data-i18n="Output">Output</span> <select id="output"><option value="hex-lower" data-i18n="HEX lowercase">HEX lowercase</option><option value="hex-upper" data-i18n="HEX uppercase">HEX uppercase</option><option value="base64">Base64</option></select></label><button id="calculateStart" class="primary" data-i18n="Calculate">Calculate</button></div>
34 </section>
36 <section id="verify" class="panel tab-panel">
37 <h2 data-i18n="Verify">Verify</h2><p data-i18n="Compare a local file with an expected digest. Hex comparison ignores case and surrounding whitespace.">Compare a local file with an expected digest. Hex comparison ignores case and surrounding whitespace.</p>
38 <div class="picker-row"><button id="verifyPick" data-i18n="Choose file…">Choose file…</button><span id="verifySelection" class="selection" data-i18n="Nothing selected">Nothing selected</span></div>
39 <div class="form-grid"><label><span data-i18n="Algorithm">Algorithm</span><select id="verifyAlgorithm"></select></label><label><span data-i18n="Expected encoding">Expected encoding</span><select id="expectedEncoding"><option value="hex">HEX</option><option value="base64">Base64</option></select></label><label><span data-i18n="Expected digest">Expected digest</span><input id="expected" class="mono" autocomplete="off" spellcheck="false"></label></div>
40 <div id="detection" class="hint"></div><div class="actions"><button id="verifyStart" class="primary" data-i18n="Verify">Verify</button></div>
41 </section>
43 <section id="compare" class="panel tab-panel">
44 <h2 data-i18n="Compare Files">Compare Files</h2><p data-i18n="This compares calculated digests, not every byte directly.">This compares calculated digests, not every byte directly.</p>
45 <div class="compare-grid"><div><button id="comparePickA" data-i18n="Choose File A…">Choose File A…</button><span id="compareA" class="selection block" data-i18n="Nothing selected">Nothing selected</span></div><div><button id="comparePickB" data-i18n="Choose File B…">Choose File B…</button><span id="compareB" class="selection block" data-i18n="Nothing selected">Nothing selected</span></div></div>
46 <label><span data-i18n="Algorithms">Algorithms</span> <span class="hint" data-i18n="Select one or more (Ctrl/Cmd-click).">Select one or more (Ctrl/Cmd-click).</span><select id="compareAlgorithm" multiple size="8"></select></label><div class="actions"><button id="compareStart" class="primary" data-i18n="Compare digests">Compare digests</button></div>
47 </section>
49 <section id="manifests" class="panel tab-panel">
50 <h2 data-i18n="Checksum manifests">Checksum manifests</h2>
51 <div class="manifest-grid">
52 <article><h3 data-i18n="Generate">Generate</h3><p data-i18n="GNU, BSD, or SFV with portable relative paths.">GNU, BSD, or SFV with portable relative paths.</p><select id="manifestSourceMode"><option value="files" data-i18n="Files">Files</option><option value="directory" data-i18n="Directory">Directory</option></select><button id="manifestSourcePick" data-i18n="Choose source…">Choose source…</button><span id="manifestSource" class="selection block" data-i18n="Nothing selected">Nothing selected</span><label><span data-i18n="Algorithm">Algorithm</span><select id="manifestAlgorithm"></select></label><label><span data-i18n="Format">Format</span><select id="manifestFormat"><option value="gnu">GNU</option><option value="bsd">BSD</option><option value="sfv" data-i18n="SFV (CRC32 only)">SFV (CRC32 only)</option></select></label><label class="check"><input id="manifestRecursive" type="checkbox"> <span data-i18n="Include subdirectories">Include subdirectories</span></label><button id="manifestGenerate" class="primary" data-i18n="Generate manifest…">Generate manifest…</button></article>
53 <article><h3 data-i18n="Verify">Verify</h3><p data-i18n="Absolute paths, traversal, UNC/drive paths, and symlink escapes are rejected.">Absolute paths, traversal, UNC/drive paths, and symlink escapes are rejected.</p><button id="manifestPick" data-i18n="Choose manifest…">Choose manifest…</button><span id="manifestSelection" class="selection block" data-i18n="Nothing selected">Nothing selected</span><button id="manifestRootPick" data-i18n="Choose root directory…">Choose root directory…</button><span id="manifestRoot" class="selection block" data-i18n="Nothing selected">Nothing selected</span><label><span data-i18n="Algorithm override (optional)">Algorithm override (optional)</span><select id="manifestVerifyAlgorithm"><option value="" data-i18n="Auto-detect">Auto-detect</option></select></label><button id="manifestVerify" class="primary" data-i18n="Verify manifest">Verify manifest</button></article>
54 </div>
55 </section>
57 <section id="openpgp" class="panel tab-panel">
58 <h2 data-i18n="OpenPGP signature">OpenPGP signature</h2><p data-i18n="Verify a file against a detached signature (.asc, .sig, .gpg). The signer's public key is required; a fingerprint checks that it is the key you expect.">Verify a file against a detached signature (.asc, .sig, .gpg). The signer's public key is required; a fingerprint checks that it is the key you expect.</p>
59 <div class="pgp-grid">
60 <div><button id="pgpFilePick" data-i18n="Choose file…">Choose file…</button><span id="pgpFile" class="selection block" data-i18n="Nothing selected">Nothing selected</span></div>
61 <div><button id="pgpSignaturePick" data-i18n="Choose signature…">Choose signature…</button><span id="pgpSignature" class="selection block" data-i18n="Nothing selected">Nothing selected</span></div>
62 <div><button id="pgpKeyPick" data-i18n="Choose public key…">Choose public key…</button><span id="pgpKey" class="selection block" data-i18n="Saved keys are used if you do not add one">Saved keys are used if you do not add one</span></div>
63 </div>
64 <details class="pgp-paste"><summary data-i18n="Paste a public key">Paste a public key</summary><textarea id="pgpKeyText" class="mono" rows="5" spellcheck="false" placeholder="-----BEGIN PGP PUBLIC KEY BLOCK-----"></textarea></details>
65 <div class="form-grid"><label><span data-i18n="Expected fingerprint (optional)">Expected fingerprint (optional)</span><input id="pgpFingerprint" class="mono" spellcheck="false" autocomplete="off"></label><label class="check pgp-save"><input id="pgpSaveKey" type="checkbox"> <span data-i18n="Save this key for later verification">Save this key for later verification</span></label></div>
66 <div class="actions"><button id="pgpVerify" class="primary" data-i18n="Verify signature">Verify signature</button></div>
67 <div id="pgpResult" class="summary" aria-live="polite"></div>
68 <h3 data-i18n="Saved keys">Saved keys</h3><div id="pgpKeys" class="pgp-keys"></div>
69 </section>
71 <section class="panel job-panel" aria-live="polite">
72 <div class="section-heading"><div><h2 data-i18n="Job">Job</h2><p id="jobState" data-i18n="No job running">No job running</p></div><button id="cancel" class="danger hidden" data-i18n="Cancel">Cancel</button></div>
73 <div class="progress-track"><div id="progressBar" class="progress-bar"></div></div>
74 <div id="progressStats" class="stats"></div><div id="summary" class="summary"></div>
75 <div class="result-actions"><button id="copyAll" class="ghost hidden" data-i18n="Copy all">Copy all</button><button id="exportResults" class="ghost hidden" data-i18n="Export results…">Export results…</button></div>
76 <div class="table-wrap"><table><thead><tr><th data-i18n="File">File</th><th data-i18n="Size">Size</th><th data-i18n="Algorithm">Algorithm</th><th data-i18n="Digest">Digest</th><th data-i18n="Status">Status</th><th></th></tr></thead><tbody id="results"></tbody></table></div>
77 </section>
78 </main>
79 <script src="i18n.js"></script>
80 <script src="index.js"></script>
81</body>
82</html>
SHA-2567aeb10baaa789632d5e98785d8cedeb8ec56fbcb7faea247a0d35d10a929f84b

CH-J Proprietary Software License 1.14 · ソースは CH-J Proprietary Software License 1.14 に基づいて提供されています。公開されていても、ライセンス条項が変わったり、追加の権利が付与されたりすることはありません。

アーカイブの SHA-256ac8fe790f4ba60fc098f8c985fc2656cfcc6cdc21fb34b30e308a2b54e62258f
ファイル