Initial commit
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
/**
|
||||
* base64编码/解码
|
||||
*/
|
||||
|
||||
namespace plugin\dev\base64;
|
||||
|
||||
use app\Plugin;
|
||||
|
||||
class App extends Plugin
|
||||
{
|
||||
|
||||
public function index()
|
||||
{
|
||||
return $this->view();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
{extend name="common/plugin_layout" /}
|
||||
{block name="title"}{$plugin.title} - {:config_get('title')}{/block}
|
||||
{block name="main"}
|
||||
<div class="container-xl" id="app">
|
||||
<div class="col-sm-12 col-md-10 col-xl-8 center-block">
|
||||
<div class="card card-preview">
|
||||
<div class="card-inner mt-3">
|
||||
<div class="nya-title nk-ibx-action-item progress-rating">
|
||||
<span class="nk-menu-text font-weight-bold">base64编码/解码</span>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="form-label" for=input">字符串</label>
|
||||
<div class="form-control-wrap">
|
||||
<textarea class="form-control" id="input" rows="8" placeholder="需要编码/解码的字符串"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row pt-1 pb-1">
|
||||
<div class="col-3">
|
||||
<button class="btn btn-dim btn-outline-secondary btn-block card-link" onclick="encode()">
|
||||
<em class="icon ni ni-lock"></em>编码
|
||||
</button>
|
||||
</div>
|
||||
<div class="col-3">
|
||||
<button class="btn btn-dim btn-outline-secondary btn-block card-link" onclick="decode()">
|
||||
<em class="icon ni ni-unlock"></em>解码
|
||||
</button>
|
||||
</div>
|
||||
<div class="col-3">
|
||||
<button class="btn btn-dim btn-outline-secondary btn-block card-link" onclick="exchange()">
|
||||
<em class="icon ni ni-exchange-v"></em>交换
|
||||
</button>
|
||||
</div>
|
||||
<div class="col-3">
|
||||
<button class="btn btn-dim btn-outline-secondary btn-block card-link" onclick="reset()">
|
||||
<em class="icon ni ni-reload"></em>清空
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group mt-3">
|
||||
<label class="form-label" for="output">结果</label>
|
||||
<div class="form-control-wrap">
|
||||
<textarea class="form-control" id="output" rows="8" placeholder="base64编码/解码的结果"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/block}
|
||||
{block name="script"}
|
||||
<script src="{$cdn_cdnjs}crypto-js/4.1.1/crypto-js.min.js"></script>
|
||||
<script>
|
||||
function encode() {
|
||||
var input = $("#input").val();
|
||||
try {
|
||||
const wordArray = CryptoJS.enc.Utf8.parse(input);
|
||||
var output = CryptoJS.enc.Base64.stringify(wordArray);
|
||||
$("#output").val(output);
|
||||
} catch (e) {
|
||||
layer.msg(e.message, {icon:2});
|
||||
$("#output").val('');
|
||||
}
|
||||
}
|
||||
function decode() {
|
||||
var input = $("#input").val();
|
||||
try {
|
||||
output = CryptoJS.enc.Base64.parse(input).toString(CryptoJS.enc.Utf8);
|
||||
$("#output").val(output);
|
||||
} catch (e) {
|
||||
layer.msg(e.message, {icon:2});
|
||||
$("#output").val('');
|
||||
}
|
||||
}
|
||||
function exchange() {
|
||||
var input = $("#input").val();
|
||||
var output = $("#output").val();
|
||||
$("#input").val(output);
|
||||
$("#output").val(input);
|
||||
}
|
||||
function reset() {
|
||||
$("#input").val('');
|
||||
$("#output").val('');
|
||||
}
|
||||
</script>
|
||||
{/block}
|
||||
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
/**
|
||||
* 字节计算器
|
||||
*/
|
||||
|
||||
namespace plugin\dev\byte_calc;
|
||||
|
||||
use app\Plugin;
|
||||
|
||||
class App extends Plugin
|
||||
{
|
||||
|
||||
public function index()
|
||||
{
|
||||
return $this->view();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,110 @@
|
||||
{extend name="common/plugin_layout" /}
|
||||
{block name="title"}{$plugin.title} - {:config_get('title')}{/block}
|
||||
{block name="main"}
|
||||
<style>
|
||||
.form-group{margin-bottom: 1rem;}
|
||||
</style>
|
||||
<div class="container-xl" id="app">
|
||||
<div class="col-sm-12 col-md-10 col-xl-8 center-block">
|
||||
<div class="card card-preview">
|
||||
<div class="card-inner mt-3">
|
||||
<div class="nya-title nk-ibx-action-item progress-rating">
|
||||
<span class="nk-menu-text font-weight-bold">字节计算器</span>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="set.bit">bit (b)</label>
|
||||
<div class="form-control-wrap">
|
||||
<input v-model="set.bit" id="set.bit" type="number" placeholder="bit (b)" class="form-control form-control-lg">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="set.byte">byte (B)</label>
|
||||
<div class="form-control-wrap">
|
||||
<input v-model="set.byte" id="set.byte" type="number" placeholder="byte (B)" class="form-control form-control-lg">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="set.kilobyte">kilobyte (KB)</label>
|
||||
<div class="form-control-wrap">
|
||||
<input v-model="set.kilobyte" id="set.kilobyte" type="number" placeholder="kilobyte (KB)" class="form-control form-control-lg">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="set.megabyte">megabyte (MB)</label>
|
||||
<div class="form-control-wrap">
|
||||
<input v-model="set.megabyte" id="set.megabyte" type="number" placeholder="megabyte (MB)" class="form-control form-control-lg">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="set.gigabyte">gigabyte (GB)</label>
|
||||
<div class="form-control-wrap">
|
||||
<input v-model="set.gigabyte" id="set.gigabyte" type="number" placeholder="gigabyte (GB)" class="form-control form-control-lg">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="set.terabyte">terabyte (TB)</label>
|
||||
<div class="form-control-wrap">
|
||||
<input v-model="set.terabyte" id="set.terabyte" type="number" placeholder="terabyte (TB)" class="form-control form-control-lg">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="set.petabyte">petabyte (PB)</label>
|
||||
<div class="form-control-wrap">
|
||||
<input v-model="set.petabyte" id="set.petabyte" type="number" placeholder="petabyte (PB)" class="form-control form-control-lg">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/block}
|
||||
{block name="script"}
|
||||
<script src="{$cdn_cdnjs}vue/2.6.14/vue.min.js"></script>
|
||||
<script>
|
||||
new Vue({
|
||||
el: '#app',
|
||||
data: {
|
||||
set: {
|
||||
bit: '',
|
||||
byte: '',
|
||||
kilobyte: '',
|
||||
megabyte: '',
|
||||
gigabyte: '',
|
||||
terabyte: '',
|
||||
petabyte: '',
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
'set.bit'(newVal) {
|
||||
this.set.byte = newVal / 8
|
||||
},
|
||||
'set.byte'(newVal) {
|
||||
this.set.bit = newVal * 8
|
||||
this.set.kilobyte = newVal / 1024
|
||||
this.set.megabyte = newVal / 1024 / 1024
|
||||
this.set.gigabyte = newVal / 1024 / 1024 / 1024
|
||||
this.set.terabyte = newVal / 1024 / 1024 / 1024 / 1024
|
||||
this.set.petabyte = newVal / 1024 / 1024 / 1024 / 1024 / 1024
|
||||
},
|
||||
'set.kilobyte'(newVal) {
|
||||
this.set.byte = newVal * 1024
|
||||
},
|
||||
'set.megabyte'(newVal) {
|
||||
this.set.byte = newVal * 1024 * 1024
|
||||
},
|
||||
'set.gigabyte'(newVal) {
|
||||
this.set.byte = newVal * 1024 * 1024 * 1024
|
||||
},
|
||||
'set.terabyte'(newVal) {
|
||||
this.set.byte = newVal * 1024 * 1024 * 1024 * 1024
|
||||
},
|
||||
'set.petabyte'(newVal) {
|
||||
this.set.byte = newVal * 1024 * 1024 * 1024 * 1024 * 1024
|
||||
},
|
||||
},
|
||||
created() {
|
||||
},
|
||||
methods: {},
|
||||
})
|
||||
</script>
|
||||
{/block}
|
||||
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
/**
|
||||
* CSS 格式化/压缩
|
||||
*/
|
||||
|
||||
namespace plugin\dev\code_css;
|
||||
|
||||
use app\Plugin;
|
||||
|
||||
class App extends Plugin
|
||||
{
|
||||
|
||||
public function index()
|
||||
{
|
||||
return $this->view();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
{extend name="common/plugin_layout" /}
|
||||
{block name="title"}{$plugin.title} - {:config_get('title')}{/block}
|
||||
{block name="head"}
|
||||
<link rel="stylesheet" href="{$cdn_npm}[email protected]/lib/codemirror.css">
|
||||
<link rel="stylesheet" href="{$cdn_npm}[email protected]/theme/mdn-like.css">
|
||||
<script src="{$cdn_npm}[email protected]/lib/codemirror.js"></script>
|
||||
<script src="{$cdn_npm}[email protected]/js/lib/beautifier.min.js"></script>
|
||||
<script src="{$cdn_npm}[email protected]/dist/csso.js"></script>
|
||||
<script src="{$cdn_npm}[email protected]/mode/css/css.js"></script>
|
||||
{/block}
|
||||
{block name="main"}
|
||||
<div class="container-xl">
|
||||
<div class="card card-preview">
|
||||
<div class="card-inner mt-3">
|
||||
<div class="nya-title nk-ibx-action-item progress-rating">
|
||||
<span class="nk-menu-text font-weight-bold">CSS 格式化/压缩</span>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="form-label">代码:</label>
|
||||
<div class="form-control-wrap">
|
||||
<textarea id="code" class="textarea textarea-bordered "></textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<button class="btn btn-dim btn-outline-secondary card-link" onclick="format()">
|
||||
格式化
|
||||
</button>
|
||||
<button class="btn btn-dim btn-outline-secondary card-link" onclick="compress()">
|
||||
压缩
|
||||
</button>
|
||||
<button class="btn btn-dim btn-outline-secondary card-link" onclick="reset()">
|
||||
<em class="icon ni ni-reload"></em>
|
||||
清空
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/block}
|
||||
{block name="script"}
|
||||
<script>
|
||||
var defaultvalue = `body {
|
||||
border: 1px solid #eee;
|
||||
height: 100%;
|
||||
color: #fff;
|
||||
/*background-color: skyblue;*/
|
||||
}`;
|
||||
$("#code").html(defaultvalue);
|
||||
var initcodemirror = CodeMirror.fromTextArea(document.getElementById("code"), { // 标识到textarea
|
||||
value: defaultvalue, // 文本域默认显示的文本
|
||||
mode: {name: "css"}, // 模式
|
||||
theme: "mdn-like", // CSS样式选择
|
||||
indentUnit: 2, // 缩进单位,默认2
|
||||
smartIndent: true, // 是否智能缩进
|
||||
tabSize: 4, // Tab缩进,默认4
|
||||
readOnly: false, // 是否只读,默认false
|
||||
showCursorWhenSelecting: true,
|
||||
lineNumbers: true, // 是否显示行号
|
||||
lineWrapping: true,
|
||||
matchBrackets: true,
|
||||
});
|
||||
function format() {
|
||||
initcodemirror.setValue(beautifier.css(initcodemirror.getValue()));
|
||||
}
|
||||
function compress() {
|
||||
initcodemirror.setValue(csso.minify(initcodemirror.getValue()).css);
|
||||
}
|
||||
function reset() {
|
||||
$("#code").val('');
|
||||
initcodemirror.setValue('');
|
||||
}
|
||||
</script>
|
||||
{/block}
|
||||
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
/**
|
||||
* Html 格式化/加密/压缩
|
||||
*/
|
||||
|
||||
namespace plugin\dev\code_html;
|
||||
|
||||
use app\Plugin;
|
||||
|
||||
class App extends Plugin
|
||||
{
|
||||
|
||||
public function index()
|
||||
{
|
||||
return $this->view();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,108 @@
|
||||
{extend name="common/plugin_layout" /}
|
||||
{block name="title"}{$plugin.title} - {:config_get('title')}{/block}
|
||||
{block name="head"}
|
||||
<link rel="stylesheet" href="{$cdn_npm}[email protected]/lib/codemirror.css">
|
||||
<link rel="stylesheet" href="{$cdn_npm}[email protected]/theme/mdn-like.css">
|
||||
<script src="{$cdn_npm}[email protected]/lib/codemirror.js"></script>
|
||||
<script src="{$cdn_npm}[email protected]/js/lib/beautifier.min.js"></script>
|
||||
|
||||
<script src="{$cdn_npm}[email protected]/mode/xml/xml.js"></script>
|
||||
<script src="{$cdn_npm}[email protected]/mode/css/css.js"></script>
|
||||
<script src="{$cdn_npm}[email protected]/mode/javascript/javascript.js"></script>
|
||||
<script src="{$cdn_npm}[email protected]/mode/htmlmixed/htmlmixed.js"></script>
|
||||
|
||||
<script src="{$cdn_cdnjs}html-minifier/4.0.0/htmlminifier.min.js"></script>
|
||||
{/block}
|
||||
{block name="main"}
|
||||
<div class="container-xl">
|
||||
<div class="card card-preview">
|
||||
<div class="card-inner mt-3">
|
||||
<div class="nya-title nk-ibx-action-item progress-rating">
|
||||
<span class="nk-menu-text font-weight-bold">Html 格式化/加密/压缩</span>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="form-label">代码:</label>
|
||||
<div class="form-control-wrap">
|
||||
<textarea id="code" class="textarea textarea-bordered "></textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<button class="btn btn-dim btn-outline-secondary card-link" onclick="format()">
|
||||
格式化
|
||||
</button>
|
||||
<button class="btn btn-dim btn-outline-secondary card-link" onclick="compress()">
|
||||
压缩
|
||||
</button>
|
||||
<button class="btn btn-dim btn-outline-secondary card-link" onclick="encode()">
|
||||
加密
|
||||
</button>
|
||||
<button class="btn btn-dim btn-outline-secondary card-link" onclick="reset()">
|
||||
<em class="icon ni ni-reload"></em>
|
||||
清空
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/block}
|
||||
{block name="script"}
|
||||
<script>
|
||||
var defaultvalue = `<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Title</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>
|
||||
Hello World!
|
||||
</h1>
|
||||
</body>
|
||||
</html>`;
|
||||
const minify = require('html-minifier').minify;
|
||||
$("#code").html(defaultvalue);
|
||||
var initcodemirror = CodeMirror.fromTextArea(document.getElementById("code"), { // 标识到textarea
|
||||
value: defaultvalue, // 文本域默认显示的文本
|
||||
mode: {name: "htmlmixed"}, // 模式
|
||||
theme: "mdn-like", // CSS样式选择
|
||||
indentUnit: 2, // 缩进单位,默认2
|
||||
smartIndent: true, // 是否智能缩进
|
||||
tabSize: 4, // Tab缩进,默认4
|
||||
readOnly: false, // 是否只读,默认false
|
||||
showCursorWhenSelecting: true,
|
||||
lineNumbers: true, // 是否显示行号
|
||||
lineWrapping: true,
|
||||
matchBrackets: true,
|
||||
});
|
||||
function format() {
|
||||
initcodemirror.setValue(beautifier.html(initcodemirror.getValue()));
|
||||
}
|
||||
function compress() {
|
||||
initcodemirror.setValue(minify(initcodemirror.getValue(), {
|
||||
minifyCSS: true,
|
||||
minifyJS: true,
|
||||
removeComments: true,
|
||||
collapseWhitespace: true,
|
||||
decodeEntities: true,
|
||||
trimCustomFragments: true,
|
||||
}));
|
||||
}
|
||||
function encode(){
|
||||
var minifyCode = minify(initcodemirror.getValue(), {
|
||||
minifyCSS: true,
|
||||
minifyJS: true,
|
||||
removeComments: true,
|
||||
collapseWhitespace: true,
|
||||
decodeEntities: true,
|
||||
trimCustomFragments: true,
|
||||
})
|
||||
var code = `<script>
|
||||
document.write(decodeURIComponent("${encodeURIComponent(minifyCode)}"));
|
||||
<\/script>`
|
||||
initcodemirror.setValue(code);
|
||||
}
|
||||
function reset() {
|
||||
$("#code").val('');
|
||||
initcodemirror.setValue('');
|
||||
}
|
||||
</script>
|
||||
{/block}
|
||||
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
/**
|
||||
* JavaScript 格式化/混淆/压缩
|
||||
*/
|
||||
|
||||
namespace plugin\dev\code_js;
|
||||
|
||||
use app\Plugin;
|
||||
|
||||
class App extends Plugin
|
||||
{
|
||||
|
||||
public function index()
|
||||
{
|
||||
return $this->view();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,98 @@
|
||||
{extend name="common/plugin_layout" /}
|
||||
{block name="title"}{$plugin.title} - {:config_get('title')}{/block}
|
||||
{block name="head"}
|
||||
<link rel="stylesheet" href="{$cdn_npm}[email protected]/lib/codemirror.css">
|
||||
<link rel="stylesheet" href="{$cdn_npm}[email protected]/theme/mdn-like.css">
|
||||
<script src="{$cdn_npm}[email protected]/lib/codemirror.js"></script>
|
||||
<script src="{$cdn_npm}[email protected]/js/lib/beautifier.min.js"></script>
|
||||
<script src="{$cdn_npm}[email protected]/dist/bundle.min.js"></script>
|
||||
<script src="{$cdn_npm}[email protected]/mode/javascript/javascript.js"></script>
|
||||
{/block}
|
||||
{block name="main"}
|
||||
<div class="container-xl">
|
||||
<div class="card card-preview">
|
||||
<div class="card-inner mt-3">
|
||||
<div class="nya-title nk-ibx-action-item progress-rating">
|
||||
<span class="nk-menu-text font-weight-bold">JavaScript 格式化/混淆/压缩</span>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="form-label">代码:</label>
|
||||
<div class="form-control-wrap">
|
||||
<textarea id="code" class="textarea textarea-bordered "></textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<button class="btn btn-dim btn-outline-secondary card-link" onclick="format()">
|
||||
格式化
|
||||
</button>
|
||||
<button class="btn btn-dim btn-outline-secondary card-link" onclick="compress()">
|
||||
压缩
|
||||
</button>
|
||||
<button class="btn btn-dim btn-outline-secondary card-link" onclick="mix_up()">
|
||||
混淆
|
||||
</button>
|
||||
<button class="btn btn-dim btn-outline-secondary card-link" onclick="reset()">
|
||||
<em class="icon ni ni-reload"></em>
|
||||
清空
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/block}
|
||||
{block name="script"}
|
||||
<script>
|
||||
var defaultvalue = `new Vue({
|
||||
el: '#app',
|
||||
data: {
|
||||
set: {
|
||||
input: window.location.href,
|
||||
output: '',
|
||||
},
|
||||
},
|
||||
created() {
|
||||
},
|
||||
mounted() {
|
||||
},
|
||||
methods: {
|
||||
},
|
||||
})
|
||||
`;
|
||||
$("#code").html(defaultvalue);
|
||||
var initcodemirror = CodeMirror.fromTextArea(document.getElementById("code"), { // 标识到textarea
|
||||
value: defaultvalue, // 文本域默认显示的文本
|
||||
mode: {name: "javascript", json: true}, // 模式
|
||||
theme: "mdn-like", // CSS样式选择
|
||||
indentUnit: 2, // 缩进单位,默认2
|
||||
smartIndent: true, // 是否智能缩进
|
||||
tabSize: 4, // Tab缩进,默认4
|
||||
readOnly: false, // 是否只读,默认false
|
||||
showCursorWhenSelecting: true,
|
||||
lineNumbers: true, // 是否显示行号
|
||||
lineWrapping: true,
|
||||
matchBrackets: true,
|
||||
});
|
||||
function format() {
|
||||
initcodemirror.setValue(beautifier.js(initcodemirror.getValue()));
|
||||
}
|
||||
function compress() {
|
||||
Terser.minify(initcodemirror.getValue(), {
|
||||
compress: true,
|
||||
mangle: false,
|
||||
}).then(res => {
|
||||
initcodemirror.setValue(res.code);
|
||||
})
|
||||
}
|
||||
function mix_up(){
|
||||
Terser.minify(initcodemirror.getValue(), {
|
||||
mangle: true,
|
||||
compress: true,
|
||||
}).then(res => {
|
||||
initcodemirror.setValue(res.code);
|
||||
})
|
||||
}
|
||||
function reset() {
|
||||
$("#code").val('');
|
||||
initcodemirror.setValue('');
|
||||
}
|
||||
</script>
|
||||
{/block}
|
||||
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
/**
|
||||
* 编码解码器
|
||||
*/
|
||||
|
||||
namespace plugin\dev\decode;
|
||||
|
||||
use app\Plugin;
|
||||
|
||||
class App extends Plugin
|
||||
{
|
||||
|
||||
public function index()
|
||||
{
|
||||
return $this->view();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,198 @@
|
||||
{extend name="common/plugin_layout" /}
|
||||
{block name="title"}{$plugin.title} - {:config_get('title')}{/block}
|
||||
{block name="main"}
|
||||
<div class="container-xl" id="app">
|
||||
<div class="col-sm-12 col-md-10 col-xl-8 center-block">
|
||||
<div class="card card-preview">
|
||||
<div class="card-inner mt-3">
|
||||
<div class="nya-title nk-ibx-action-item progress-rating">
|
||||
<span class="nk-menu-text font-weight-bold">编码解码器</span>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="form-control-wrap">
|
||||
<textarea class="form-control" id="input" rows="8" placeholder="需要编码/解码的字符串"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<select class="form-control" id="type">
|
||||
<option value="urldecode">URL解码</option>
|
||||
<option value="urlencode">URL编码</option>
|
||||
<!--option value="rawurldecode">RAW-URL解码</option-->
|
||||
<!--option value="rawurlencode">RAW-URL编码</option-->
|
||||
<option value="base64decode">base64解码</option>
|
||||
<option value="base64encode">base64编码</option>
|
||||
<option value="htmldecode">HTML实体转字符</option>
|
||||
<option value="htmlencode">字符转HTML实体</option>
|
||||
<option value="unicodedecode">Unicode解码</option>
|
||||
<option value="unicodeencode">Unicode编码</option>
|
||||
<option value="asciitostr">ASCII转字符</option>
|
||||
<option value="strtoascii">字符转ASCII</option>
|
||||
<option value="x16decode">\x16进制解码</option>
|
||||
<option value="x16encode">\x16进制编码</option>
|
||||
<option value="md5">md5加密</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-4">
|
||||
<button class="btn btn-dim btn-outline-secondary btn-block card-link" onclick="submit()">
|
||||
<em class="icon ni ni-play"></em>执行
|
||||
</button>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<button class="btn btn-dim btn-outline-secondary btn-block card-link" onclick="exchange()">
|
||||
<em class="icon ni ni-exchange-v"></em>交换
|
||||
</button>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<button class="btn btn-dim btn-outline-secondary btn-block card-link" onclick="reset()">
|
||||
<em class="icon ni ni-reload"></em>清空
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group mt-3">
|
||||
<label class="form-label" for="output">结果</label>
|
||||
<div class="form-control-wrap">
|
||||
<textarea class="form-control" id="output" rows="8" placeholder="编码/解码的结果"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/block}
|
||||
{block name="script"}
|
||||
<script src="{$cdn_cdnjs}blueimp-md5/2.19.0/js/md5.min.js"></script>
|
||||
<script>
|
||||
function submit() {
|
||||
var input = $("#input").val();
|
||||
var type = $("#type").val();
|
||||
if(input == '') return;
|
||||
var output = '';
|
||||
switch(type){
|
||||
case 'urldecode':
|
||||
output = decodeURIComponent(input.replace(/\+/g, '%20'));
|
||||
break;
|
||||
case 'urlencode':
|
||||
output = encodeURIComponent(input).replace(/%20/g, '+');
|
||||
break;
|
||||
case 'rawurldecode':
|
||||
output = decodeURIComponent(input);
|
||||
break;
|
||||
case 'rawurlencode':
|
||||
output = encodeURIComponent(input);
|
||||
break;
|
||||
case 'base64decode':
|
||||
output = Base64.decode(input)
|
||||
break;
|
||||
case 'base64encode':
|
||||
output = Base64.encode(input)
|
||||
break;
|
||||
case 'htmldecode':
|
||||
output = HtmlUtil.htmlDecode(input)
|
||||
break;
|
||||
case 'htmlencode':
|
||||
output = HtmlUtil.htmlEncode(input)
|
||||
break;
|
||||
case 'unicodedecode':
|
||||
output = Unicode.decode(input)
|
||||
break;
|
||||
case 'unicodeencode':
|
||||
output = Unicode.encode(input)
|
||||
break;
|
||||
case 'asciitostr':
|
||||
output = Ascii.decode(input)
|
||||
break;
|
||||
case 'strtoascii':
|
||||
output = Ascii.encode(input)
|
||||
break;
|
||||
case 'x16decode':
|
||||
output = jsx16.decode(input)
|
||||
break;
|
||||
case 'x16encode':
|
||||
output = jsx16.encode(input)
|
||||
break;
|
||||
case 'md5':
|
||||
output = md5(input)
|
||||
break;
|
||||
}
|
||||
$("#output").val(output);
|
||||
}
|
||||
function exchange() {
|
||||
var input = $("#input").val();
|
||||
var output = $("#output").val();
|
||||
$("#input").val(output);
|
||||
$("#output").val(input);
|
||||
}
|
||||
function reset() {
|
||||
$("#input").val('');
|
||||
$("#output").val('');
|
||||
}
|
||||
var Base64 = {
|
||||
encode: function (str) {
|
||||
return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g,
|
||||
function toSolidBytes(match, p1) {
|
||||
return String.fromCharCode('0x' + p1);
|
||||
}));
|
||||
},
|
||||
decode: function (str) {
|
||||
return decodeURIComponent(atob(str).split('').map(function (c) {
|
||||
return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
|
||||
}).join(''));
|
||||
}
|
||||
};
|
||||
var HtmlUtil = {
|
||||
htmlEncode: function(html) {
|
||||
var tempDiv = document.createElement('div');
|
||||
(tempDiv.textContent != undefined) ? (tempDiv.textContent = html) : (tempDiv.innerText = html);
|
||||
var output = tempDiv.innerHTML;
|
||||
tempDiv = null;
|
||||
return output;
|
||||
},
|
||||
htmlDecode: function(text) {
|
||||
var tempDiv = document.createElement('div');
|
||||
tempDiv.innerHTML = text;
|
||||
var output = tempDiv.innerText || tempDiv.textContent;
|
||||
tempDiv = null;
|
||||
return output;
|
||||
}
|
||||
};
|
||||
var Unicode = {
|
||||
encode: function(str){
|
||||
var res=[];
|
||||
for(var i=0;i < str.length;i++)
|
||||
res[i]=("00"+str.charCodeAt(i).toString(16)).slice(-4);
|
||||
return "\\u"+res.join("\\u");
|
||||
},
|
||||
decode: function (str) {
|
||||
str=str.replace(/\\/g,"%");
|
||||
return unescape(str);
|
||||
}
|
||||
};
|
||||
var Ascii = {
|
||||
encode: function(str){
|
||||
var res=[];
|
||||
for(var i=0;i < str.length;i++)
|
||||
res[i]='&#'+str.charCodeAt(i)+';';
|
||||
return res.join('');
|
||||
},
|
||||
decode: function (str) {
|
||||
return str.split(";").map(function (c) {
|
||||
c = c.replace('&#','');
|
||||
if(c!='')return String.fromCharCode(c);
|
||||
}).join('');
|
||||
}
|
||||
};
|
||||
var jsx16 = {
|
||||
encode: function(str){
|
||||
var res=[];
|
||||
for(var i=0;i < str.length;i++)
|
||||
res[i]="\\x" + str.charCodeAt(i).toString(16);
|
||||
return res.join("");
|
||||
},
|
||||
decode: function (str) {
|
||||
str=str.replace(/\\x/g,"%");
|
||||
return unescape(str);
|
||||
}
|
||||
};
|
||||
</script>
|
||||
{/block}
|
||||
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
/**
|
||||
* 对称加密解密
|
||||
*/
|
||||
|
||||
namespace plugin\dev\encrypt;
|
||||
|
||||
use app\Plugin;
|
||||
|
||||
class App extends Plugin
|
||||
{
|
||||
|
||||
public function index()
|
||||
{
|
||||
return $this->view();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
{extend name="common/plugin_layout" /}
|
||||
{block name="title"}{$plugin.title} - {:config_get('title')}{/block}
|
||||
{block name="main"}
|
||||
<div class="container-xl" id="app">
|
||||
<div class="col-sm-12 col-md-10 col-xl-8 center-block">
|
||||
<div class="card card-preview">
|
||||
<div class="card-inner mt-3">
|
||||
<div class="nya-title nk-ibx-action-item progress-rating">
|
||||
<span class="nk-menu-text font-weight-bold">对称加密解密</span>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="input">字符串</label>
|
||||
<div class="form-control-wrap">
|
||||
<textarea class="form-control" id="input" rows="8" placeholder="需要加密/解密的字符串"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="form-label">加密方式</label>
|
||||
<div class="form-control-wrap">
|
||||
<div class="custom-control custom-radio m-1"><input type="radio" class="custom-control-input" name="encrypt_type" id="customRadio1" value="AES" checked><label class="custom-control-label" for="customRadio1">AES</label></div>
|
||||
<div class="custom-control custom-radio m-1"><input type="radio" class="custom-control-input" name="encrypt_type" id="customRadio2" value="DES"><label class="custom-control-label" for="customRadio2">DES</label></div>
|
||||
<div class="custom-control custom-radio m-1"><input type="radio" class="custom-control-input" name="encrypt_type" id="customRadio3" value="RC4"><label class="custom-control-label" for="customRadio3">RC4</label></div>
|
||||
<div class="custom-control custom-radio m-1"><input type="radio" class="custom-control-input" name="encrypt_type" id="customRadio4" value="Rabbit"><label class="custom-control-label" for="customRadio4">Rabbit</label></div>
|
||||
<div class="custom-control custom-radio m-1"><input type="radio" class="custom-control-input" name="encrypt_type" id="customRadio5" value="TripleDES"><label class="custom-control-label" for="customRadio5">TripleDES</label></div>
|
||||
<div class="custom-control custom-radio m-1"><input type="radio" class="custom-control-input" name="encrypt_type" id="customRadio6" value="RC4Drop"><label class="custom-control-label" for="customRadio6">RC4Drop</label></div>
|
||||
<div class="custom-control custom-radio m-1"><input type="radio" class="custom-control-input" name="encrypt_type" id="customRadio7" value="RabbitLegacy"><label class="custom-control-label" for="customRadio7">RabbitLegacy</label></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="form-label">密钥</label>
|
||||
<div class="form-control-wrap">
|
||||
<input type="text" id="passphrase" placeholder="输入加密/解密的密钥" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row pt-1 pb-1">
|
||||
<div class="col-3">
|
||||
<button class="btn btn-dim btn-outline-secondary btn-block card-link" onclick="encrypt()">
|
||||
<em class="icon ni ni-lock"></em>加密
|
||||
</button>
|
||||
</div>
|
||||
<div class="col-3">
|
||||
<button class="btn btn-dim btn-outline-secondary btn-block card-link" onclick="decrypt()">
|
||||
<em class="icon ni ni-unlock"></em>解密
|
||||
</button>
|
||||
</div>
|
||||
<div class="col-3">
|
||||
<button class="btn btn-dim btn-outline-secondary btn-block card-link" onclick="exchange()">
|
||||
<em class="icon ni ni-exchange-v"></em>交换
|
||||
</button>
|
||||
</div>
|
||||
<div class="col-3">
|
||||
<button class="btn btn-dim btn-outline-secondary btn-block card-link" onclick="reset()">
|
||||
<em class="icon ni ni-trash-empty"></em>清空
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group mt-3">
|
||||
<label class="form-label" for="output">结果</label>
|
||||
<div class="form-control-wrap">
|
||||
<textarea class="form-control" id="output" rows="8" placeholder="加密/解密的结果"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/block}
|
||||
{block name="script"}
|
||||
<script src="{$cdn_cdnjs}crypto-js/4.1.1/crypto-js.min.js"></script>
|
||||
<script>
|
||||
function encrypt() {
|
||||
var input = $("#input").val();
|
||||
var passphrase = $("#passphrase").val();
|
||||
var encrypt_type = $("input[name='encrypt_type']").val();
|
||||
if(input == '' || passphrase == '') return;
|
||||
try {
|
||||
var output = CryptoJS[encrypt_type].encrypt(input, passphrase).toString();
|
||||
$("#output").val(output);
|
||||
} catch (e) {
|
||||
layer.msg(e.message, {icon:2});
|
||||
$("#output").val('');
|
||||
}
|
||||
}
|
||||
function decrypt() {
|
||||
var input = $("#input").val();
|
||||
var passphrase = $("#passphrase").val();
|
||||
var encrypt_type = $("input[name='encrypt_type']").val();
|
||||
if(input == '' || passphrase == '') return;
|
||||
try {
|
||||
input = CryptoJS[encrypt_type].decrypt(input, passphrase).toString(CryptoJS.enc.Utf8);
|
||||
$("#output").val(input);
|
||||
} catch (e) {
|
||||
layer.msg(e.message, {icon:2});
|
||||
$("#output").val('');
|
||||
}
|
||||
}
|
||||
function exchange() {
|
||||
var input = $("#input").val();
|
||||
var output = $("#output").val();
|
||||
$("#input").val(output);
|
||||
$("#output").val(input);
|
||||
}
|
||||
function reset() {
|
||||
$("#input").val('');
|
||||
$("#output").val('');
|
||||
$("#passphrase").val('');
|
||||
}
|
||||
</script>
|
||||
{/block}
|
||||
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
/**
|
||||
* GitHub下载加速
|
||||
*/
|
||||
|
||||
namespace plugin\dev\github;
|
||||
|
||||
use app\Plugin;
|
||||
|
||||
class App extends Plugin
|
||||
{
|
||||
|
||||
public function index()
|
||||
{
|
||||
return $this->view();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,142 @@
|
||||
{extend name="common/plugin_layout" /}
|
||||
{block name="title"}{$plugin.title} - {:config_get('title')}{/block}
|
||||
{block name="main"}
|
||||
<div class="container-xl" id="app">
|
||||
<div class="col-sm-12 col-md-10 col-xl-8 center-block">
|
||||
<div class="card card-preview">
|
||||
<div class="card-inner mt-3">
|
||||
<div class="nya-title nk-ibx-action-item progress-rating">
|
||||
<span class="nk-menu-text font-weight-bold">GitHub下载加速</span>
|
||||
</div>
|
||||
<div class="alert alert-info">有些节点不支持某些文件的下载,切换节点即可解决</div>
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="set.input">Github链接</label>
|
||||
<div class="form-control-wrap">
|
||||
<input v-model="set.input" id="set.input" type="text" class="form-control form-control-lg" autocomplete="off">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="form-label" >选择节点</label>
|
||||
<div class="form-control-wrap">
|
||||
<select class="form-control form-control-lg" v-model="set.api">
|
||||
<option v-for="(v,k) in apis" :value="k">{{k}}</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row pt-1 pb-1">
|
||||
<div class="col-4">
|
||||
<button class="btn btn-dim btn-outline-secondary btn-block card-link" @click="download">
|
||||
<em class="icon ni ni-download"></em>下载
|
||||
</button>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<button class="btn btn-dim btn-outline-secondary btn-block card-link" @click="copy">
|
||||
<em class="icon ni ni-copy"></em>复制
|
||||
</button>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<button class="btn btn-dim btn-outline-secondary btn-block card-link" @click="reset">
|
||||
<em class="icon ni ni-reload"></em>清空
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/block}
|
||||
{block name="script"}
|
||||
<script src="{$cdn_cdnjs}vue/2.6.14/vue.min.js"></script>
|
||||
<script>
|
||||
new Vue({
|
||||
el: '#app',
|
||||
data: {
|
||||
set: {
|
||||
input: '',
|
||||
output: '',
|
||||
api: 'jsdelivr.net',
|
||||
},
|
||||
apis: {
|
||||
'jsdelivr.net': (github) => {
|
||||
if (github.version === 'archive') {
|
||||
return 'https://ghproxy.com/' + github.url.toString()
|
||||
}
|
||||
return `https://fastly.jsdelivr.net/gh/${github.owner}/${github.repo}@${github.version}/${github.file}`
|
||||
},
|
||||
'ghproxy.com': (github) => {
|
||||
return 'https://ghproxy.com/' + github.url.toString()
|
||||
},
|
||||
'tool.mintimate.cn': (github) => {
|
||||
return 'https://tool.mintimate.cn/ghs/' + github.url.toString()
|
||||
},
|
||||
'monika.love[HK]': (github) => {
|
||||
return `https://hk1.monika.love/${github.owner}/${github.repo}/${github.version}/${github.file}`
|
||||
},
|
||||
'ghproxy.fsou.cc': (github) => {
|
||||
return 'https://ghproxy.fsou.cc/' + github.url.toString()
|
||||
},
|
||||
'gh.xiu2.xyz': (github) => {
|
||||
return 'https://gh.xiu2.xyz/' + github.url.toString()
|
||||
},
|
||||
'pd.zwc365.com': (github) => {
|
||||
return 'https://pd.zwc365.com/seturl/' + github.url.toString()
|
||||
},
|
||||
'gh.api.99988866.xyz': (github) => {
|
||||
return 'https://gh.api.99988866.xyz/' + github.url.toString()
|
||||
},
|
||||
'fastgit.org': (github) => {
|
||||
if (github.version === 'archive') {
|
||||
return `https://download.fastgit.org/${github.owner}/${github.repo}/${github.version}/${github.file}`
|
||||
}
|
||||
return `https://raw.fastgit.org/${github.owner}/${github.repo}/${github.version}/${github.file}`
|
||||
},
|
||||
'staticaly.com': (github) => {
|
||||
if (github.version === 'archive') {
|
||||
return 'https://ghproxy.com/' + github.url.toString()
|
||||
}
|
||||
return `https://cdn.staticaly.com/gh/${github.owner}/${github.repo}/${github.version}/${github.file}`
|
||||
},
|
||||
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
'set.input'(newVal) {
|
||||
this.set.input = newVal.trim()
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
download() {
|
||||
this.set.output = this.apis[this.set.api](this.parse(this.set.input))
|
||||
open(this.set.output)
|
||||
},
|
||||
reset() {
|
||||
this.set.input = ''
|
||||
this.set.output = ''
|
||||
},
|
||||
copy() {
|
||||
this.set.output = this.apis[this.set.api](this.parse(this.set.input))
|
||||
copy(this.set.output)
|
||||
layer.msg('复制成功', {icon:1, time:600})
|
||||
},
|
||||
parse(url) {
|
||||
if (!url.match(/http(s)?:\/\//)) {
|
||||
url = 'https://' + url
|
||||
}
|
||||
let ins = new URL(url);
|
||||
let split = ins.pathname.split('/');
|
||||
if (ins.host === 'github.com' && split[3] === 'raw') {
|
||||
split.splice(3,1)
|
||||
}
|
||||
return {
|
||||
url: ins,
|
||||
owner: split[1],
|
||||
repo: split[2],
|
||||
version: split[3],
|
||||
file: split.slice(4).join('/'),
|
||||
}
|
||||
|
||||
}
|
||||
},
|
||||
})
|
||||
</script>
|
||||
{/block}
|
||||
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
/**
|
||||
* 在线进制转换
|
||||
*/
|
||||
|
||||
namespace plugin\dev\hex_convert;
|
||||
|
||||
use app\Plugin;
|
||||
|
||||
class App extends Plugin
|
||||
{
|
||||
|
||||
public function index()
|
||||
{
|
||||
return $this->view();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,169 @@
|
||||
{extend name="common/plugin_layout" /}
|
||||
{block name="title"}{$plugin.title} - {:config_get('title')}{/block}
|
||||
{block name="main"}
|
||||
<style>
|
||||
.table td{word-break: break-all;}
|
||||
.input-small {
|
||||
width: 90px;
|
||||
border: 1px solid #bbb;
|
||||
}
|
||||
</style>
|
||||
<div class="container-xl" id="app">
|
||||
<div class="col-sm-12 col-md-10 col-xl-8 center-block">
|
||||
<div class="card card-preview">
|
||||
<div class="card-inner mt-3">
|
||||
<div class="nya-title nk-ibx-action-item progress-rating">
|
||||
<span class="nk-menu-text font-weight-bold">在线进制转换</span>
|
||||
</div>
|
||||
<div class="form-group mt-2" id="input_area">
|
||||
<div class="form-control-wrap">
|
||||
<div class="custom-control custom-radio m-1"><input type="radio" class="custom-control-input" name="input_" id="customRadio1" value="2"><label class="custom-control-label" for="customRadio1">2进制</label></div>
|
||||
<div class="custom-control custom-radio m-1"><input type="radio" class="custom-control-input" name="input_" id="customRadio2" value="4"><label class="custom-control-label" for="customRadio2">4进制</label></div>
|
||||
<div class="custom-control custom-radio m-1"><input type="radio" class="custom-control-input" name="input_" id="customRadio3" value="8"><label class="custom-control-label" for="customRadio3">8进制</label></div>
|
||||
<div class="custom-control custom-radio m-1"><input type="radio" class="custom-control-input" name="input_" id="customRadio4" value="10" checked><label class="custom-control-label" for="customRadio4">10进制</label></div>
|
||||
<div class="custom-control custom-radio m-1"><input type="radio" class="custom-control-input" name="input_" id="customRadio5" value="16"><label class="custom-control-label" for="customRadio5">16进制</label></div>
|
||||
<div class="custom-control custom-radio m-1"><input type="radio" class="custom-control-input" name="input_" id="customRadio6" value="32"><label class="custom-control-label" for="customRadio6">32进制</label></div>
|
||||
<select id="input_num" class="input-small m-1"><option value="2">2进制</option><option value="3">3进制</option><option value="4">4进制</option><option value="5">5进制</option><option value="6">6进制</option><option value="7">7进制</option><option value="8">8进制</option><option value="9">9进制</option><option value="10" selected>10进制</option><option value="11">11进制</option><option value="12">12进制</option><option value="13">13进制</option><option value="14">14进制</option><option value="15">15进制</option><option value="16">16进制</option><option value="17">17进制</option><option value="18">18进制</option><option value="19">19进制</option><option value="20">20进制</option><option value="21">21进制</option><option value="22">22进制</option><option value="23">23进制</option><option value="24">24进制</option><option value="25">25进制</option><option value="26">26进制</option><option value="27">27进制</option><option value="28">28进制</option><option value="29">29进制</option><option value="30">30进制</option><option value="31">31进制</option><option value="32">32进制</option><option value="33">33进制</option><option value="34">34进制</option><option value="35">35进制</option><option value="36">36进制</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="form-control-wrap"><div class="input-group"><div class="input-group-prepend"><span class="input-group-text">转换数字</span></div><input type="text" class="form-control" id="input_value" onpropertychange="px()" onchange="px()" oninput="px()" placeholder="在此输入待转换数字"></div></div>
|
||||
</div>
|
||||
<div class="form-group pt-2" id="output_area">
|
||||
<div class="form-control-wrap">
|
||||
<div class="custom-control custom-radio m-1"><input type="radio" class="custom-control-input" name="output_" id="customRadio11" value="2"><label class="custom-control-label" for="customRadio11">2进制</label></div>
|
||||
<div class="custom-control custom-radio m-1"><input type="radio" class="custom-control-input" name="output_" id="customRadio12" value="4"><label class="custom-control-label" for="customRadio12">4进制</label></div>
|
||||
<div class="custom-control custom-radio m-1"><input type="radio" class="custom-control-input" name="output_" id="customRadio13" value="8"><label class="custom-control-label" for="customRadio13">8进制</label></div>
|
||||
<div class="custom-control custom-radio m-1"><input type="radio" class="custom-control-input" name="output_" id="customRadio14" value="10"><label class="custom-control-label" for="customRadio14">10进制</label></div>
|
||||
<div class="custom-control custom-radio m-1"><input type="radio" class="custom-control-input" name="output_" id="customRadio15" value="16"checked><label class="custom-control-label" for="customRadio15">16进制</label></div>
|
||||
<div class="custom-control custom-radio m-1"><input type="radio" class="custom-control-input" name="output_" id="customRadio16" value="32"><label class="custom-control-label" for="customRadio16">32进制</label></div>
|
||||
<select id="output_num" onchange="px(1)" class="input-small m-1"><option value="2">2进制</option><option value="3">3进制</option><option value="4">4进制</option><option value="5">5进制</option><option value="6">6进制</option><option value="7">7进制</option><option value="8">8进制</option><option value="9">9进制</option><option value="10">10进制</option><option value="11">11进制</option><option value="12">12进制</option><option value="13">13进制</option><option value="14">14进制</option><option value="15">15进制</option><option value="16" selected>16进制</option><option value="17">17进制</option><option value="18">18进制</option><option value="19">19进制</option><option value="20">20进制</option><option value="21">21进制</option><option value="22">22进制</option><option value="23">23进制</option><option value="24">24进制</option><option value="25">25进制</option><option value="26">26进制</option><option value="27">27进制</option><option value="28">28进制</option><option value="29">29进制</option><option value="30">30进制</option><option value="31">31进制</option><option value="32">32进制</option><option value="33">33进制</option><option value="34">34进制</option><option value="35">35进制</option><option value="36">36进制</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group pb-2">
|
||||
<div class="form-control-wrap"><div class="input-group"><div class="input-group-prepend"><span class="input-group-text">转换结果</span></div><input type="text" class="form-control" id="output_value" placeholder="转换结果"></div></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card card-preview">
|
||||
<div class="card-inner mt-3">
|
||||
<div class="nya-title nk-ibx-action-item progress-rating">
|
||||
<span class="nk-menu-text font-weight-bold">说明</span>
|
||||
</div>
|
||||
支持在2~36进制之间进行任意转换,支持浮点型
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/block}
|
||||
{block name="script"}
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('[name="input_"]').click(function (){
|
||||
$('#input_num').val($(this).val());
|
||||
$('#input_value').val("");
|
||||
$('#output_value').val("");
|
||||
});
|
||||
$('[name="output_"]').click(function (){
|
||||
$('#output_num').val($(this).val());
|
||||
px(1);
|
||||
});
|
||||
$("#input_num").change(function(){
|
||||
$("#input_area input").removeAttr("checked");
|
||||
var val = $(this).val();
|
||||
$("#input_area input[value="+val+"]").attr("checked","checked");
|
||||
$('#input_value').val("");
|
||||
$('#output_value').val("");
|
||||
});
|
||||
$("#output_num").change(function(){
|
||||
$("#output_area input").removeAttr("checked");
|
||||
var val = $(this).val();
|
||||
$("#output_area input[value="+val+"]").attr("checked","checked");
|
||||
px(1);
|
||||
});
|
||||
});
|
||||
function pxparseFloat(x,y){
|
||||
x=x.toString();
|
||||
var num=x;
|
||||
var data=num.split(".");
|
||||
var you=data[1].split(""); //将右边转换为数组 得到类似 [1,0,1]
|
||||
var sum=0; //小数部分的和
|
||||
for(var i=0;i<data[1].length;i++){
|
||||
sum+=you[i]*Math.pow(y,-1*(i+1))
|
||||
}
|
||||
return parseInt(data[0],y)+sum;
|
||||
}
|
||||
function zhengze(x){
|
||||
var str;
|
||||
x=parseInt(x);
|
||||
if(x<=10){
|
||||
str=new RegExp("^[+\\-]?[0-"+(x-1)+"]*[.]?[0-"+(x-1)+"]*$","gi");
|
||||
}else{
|
||||
var letter="";
|
||||
switch(x){
|
||||
case 11:letter="a";break;
|
||||
case 12:letter="b";break;
|
||||
case 13:letter="c";break;
|
||||
case 14:letter="d";break;
|
||||
case 15:letter="e";break;
|
||||
case 16:letter="f";break;
|
||||
case 17:letter="g";break;
|
||||
case 18:letter="h";break;
|
||||
case 19:letter="i";break;
|
||||
case 20:letter="j";break;
|
||||
case 21:letter="k";break;
|
||||
case 22:letter="l";break;
|
||||
case 23:letter="m";break;
|
||||
case 24:letter="n";break;
|
||||
case 25:letter="o";break;
|
||||
case 26:letter="p";break;
|
||||
case 27:letter="q";break;
|
||||
case 28:letter="r";break;
|
||||
case 29:letter="s";break;
|
||||
case 30:letter="t";break;
|
||||
case 31:letter="u";break;
|
||||
case 32:letter="v";break;
|
||||
case 33:letter="w";break;
|
||||
case 34:letter="x";break;
|
||||
case 35:letter="y";break;
|
||||
case 36:letter="z";break;
|
||||
}
|
||||
str=new RegExp("^[+\\-]?[0-9a-"+letter+"]*[.]?[0-9a-"+letter+"]*$","gi");
|
||||
}
|
||||
return str;
|
||||
}
|
||||
var n=50;
|
||||
var shurukuang="";
|
||||
var flag="";
|
||||
function px(y){
|
||||
if($("#input_value").val()!=flag||y){
|
||||
flag=$("#input_value").val();
|
||||
if($("#input_num").selectedIndex<n){
|
||||
$("#input_value").val("");
|
||||
$("#output_value").val("");
|
||||
}else{
|
||||
var px00=$("#input_value").val();
|
||||
var px0=px00.match(zhengze($("#input_num").val()));
|
||||
if(px0){
|
||||
if(px0[0].indexOf(".")==-1){
|
||||
var px1=parseInt(px0,$('#input_num').val());
|
||||
}else{
|
||||
var px1=pxparseFloat(px0,$('#input_num').val());
|
||||
}
|
||||
px1=px1.toString($('#output_num').val());
|
||||
$("#output_value").val(px1);
|
||||
shurukuang=px00;
|
||||
}else{
|
||||
$("#input_value").val(shurukuang);
|
||||
}
|
||||
}
|
||||
n=$("#input_num").selectedIndex;
|
||||
}
|
||||
if($("#input_value").val()==""){
|
||||
$("#output_value").val("");
|
||||
}
|
||||
}
|
||||
</script>
|
||||
{/block}
|
||||
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
/**
|
||||
* JSON解析格式化
|
||||
*/
|
||||
|
||||
namespace plugin\dev\json;
|
||||
|
||||
use app\Plugin;
|
||||
|
||||
class App extends Plugin
|
||||
{
|
||||
|
||||
public function index()
|
||||
{
|
||||
return $this->view();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
{extend name="common/plugin_layout" /}
|
||||
{block name="title"}{$plugin.title} - {:config_get('title')}{/block}
|
||||
{block name="head"}
|
||||
<link rel="stylesheet" href="{$cdn_npm}[email protected]/dist/jsoneditor.min.css">
|
||||
<script src="{$cdn_npm}[email protected]/dist/jsoneditor.min.js"></script>
|
||||
<style>
|
||||
.jsoneditor-poweredBy {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.jsoneditor {
|
||||
height: 70vh;
|
||||
}
|
||||
</style>
|
||||
{/block}
|
||||
{block name="main"}
|
||||
<div class="container-xl">
|
||||
<div class="card card-preview">
|
||||
<div class="card-inner mt-3">
|
||||
<div class="nya-title nk-ibx-action-item progress-rating">
|
||||
<span class="nk-menu-text font-weight-bold">JSON解析格式化</span>
|
||||
</div>
|
||||
<div class="d-flex flex-wrap">
|
||||
<div id="editor" class="flex-fill"></div>
|
||||
<div id="view" class="flex-fill"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/block}
|
||||
{block name="script"}
|
||||
<script>
|
||||
const initialJson = {
|
||||
"Array": [1, 2, 3],
|
||||
"Boolean": true,
|
||||
"Null": null,
|
||||
"Number": 123,
|
||||
"Object": {"a": "b", "c": "d"},
|
||||
"String": "Hello World"
|
||||
}
|
||||
var editor = {
|
||||
view: {
|
||||
container: 'view',
|
||||
editor: null,
|
||||
opts: {
|
||||
mode: 'code',
|
||||
navigationBar: true,
|
||||
mainMenuBar: true,
|
||||
statusBar: true,
|
||||
colorPicker: true,
|
||||
modes: ['code', 'tree', 'view', 'form', 'text', 'preview'],
|
||||
onChangeText(data) {
|
||||
editor.edit.editor.setText(data)
|
||||
},
|
||||
}
|
||||
},
|
||||
edit: {
|
||||
container: 'editor',
|
||||
editor: null,
|
||||
opts: {
|
||||
mode: 'text',
|
||||
onChangeText(data) {
|
||||
editor.view.editor.setText(JSON.stringify(JSON.parse(data), null, 2))
|
||||
}
|
||||
}
|
||||
},
|
||||
};
|
||||
var vieweditor = new JSONEditor(document.getElementById(editor.view.container), editor.view.opts);
|
||||
var editeditor = new JSONEditor(document.getElementById(editor.edit.container), editor.edit.opts);
|
||||
vieweditor.set(initialJson);
|
||||
editeditor.set(initialJson);
|
||||
</script>
|
||||
{/block}
|
||||
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
/**
|
||||
* Linux命令查询
|
||||
*/
|
||||
|
||||
namespace plugin\dev\linux_command;
|
||||
|
||||
use app\Plugin;
|
||||
|
||||
class App extends Plugin
|
||||
{
|
||||
|
||||
public function index()
|
||||
{
|
||||
return $this->view();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,123 @@
|
||||
{extend name="common/plugin_layout" /}
|
||||
{block name="title"}{$plugin.title} - {:config_get('title')}{/block}
|
||||
{block name="main"}
|
||||
<link rel="stylesheet" href="{$cdn_cdnjs}highlight.js/11.4.0/styles/github-dark-dimmed.min.css">
|
||||
<style>
|
||||
h1,h2,h3,h4,h5,h6{font-weight:bolder}h1{font-size:2em;margin:.67em 0}h2{font-size:1.5em;margin:.75em 0}h3{font-size:1.17em;margin:.83em 0}h4{margin:1.12em 0}h5{font-size:.83em;margin:1.5em 0}h6{font-size:.75em;margin:1.67em 0}.alert-container{margin:1em 1.6em .3em;overflow:auto;font-size:1.125em;line-height:normal;word-wrap:break-word;word-break:break-word}
|
||||
</style>
|
||||
<div class="container-xl" id="app">
|
||||
<div class="col-sm-12 col-md-10 col-xl-8 center-block">
|
||||
<div class="card card-preview">
|
||||
<div class="card-inner mt-3">
|
||||
<div class="nya-title nk-ibx-action-item progress-rating">
|
||||
<span class="nk-menu-text font-weight-bold">Linux命令查询</span>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="command">command</label>
|
||||
<div class="form-control-wrap">
|
||||
<input v-model="set.input" id="command" type="text" placeholder="alias" class="form-control form-control-lg" autocomplete="off">
|
||||
</div>
|
||||
</div>
|
||||
<div class="overflow-auto mt-4" v-show="set.input">
|
||||
<div class="font-bold">搜索结果(点击查看详情)</div>
|
||||
<table class="table mt-4 table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Command</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="item in set.output" @click="preview(item)" role="button">
|
||||
<td>{{commands[item].n}}</td>
|
||||
<td>{{commands[item].d}}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/block}
|
||||
{block name="script"}
|
||||
<script src="{$cdn_cdnjs}vue/2.6.14/vue.min.js"></script>
|
||||
<script src="{$cdn_npm}[email protected]/dist/markdown-it.min.js"></script>
|
||||
<script src="{$cdn_cdnjs}highlight.js/11.4.0/highlight.min.js"></script>
|
||||
<script>
|
||||
var md = window.markdownit({
|
||||
highlight: function (str, lang) {
|
||||
if (lang && hljs.getLanguage(lang)) {
|
||||
try {
|
||||
return '<pre class="hljs p-4"><code>' +
|
||||
hljs.highlight(str, { language: lang, ignoreIllegals: true }).value +
|
||||
'</code></pre>';
|
||||
} catch (__) {}
|
||||
}
|
||||
return '<pre class="hljs p-4"><code>' + md.utils.escapeHtml(str) + '</code></pre>';
|
||||
},
|
||||
typographer: true,
|
||||
html: true,
|
||||
});
|
||||
new Vue({
|
||||
el: '#app',
|
||||
data: {
|
||||
commands: {},
|
||||
set: {
|
||||
input: '',
|
||||
output: [],
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.getData()
|
||||
},
|
||||
watch: {
|
||||
'set.input'() {
|
||||
|
||||
this.set.output = Object.keys(this.commands).filter(command => {
|
||||
return (
|
||||
this.commands[command].n.toString().toLowerCase().indexOf(this.set.input.toLowerCase()) >= 0
|
||||
)
|
||||
})
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
getData() {
|
||||
var ii = layer.load();
|
||||
var that = this;
|
||||
request('{$cdn_npm}linux-command/dist/data.json', {}, {
|
||||
type: 'GET',
|
||||
cache: true
|
||||
}).then(data => {
|
||||
layer.close(ii);
|
||||
that.commands = data
|
||||
},() => {
|
||||
layer.close(ii);
|
||||
layer.msg('服务器错误', {icon: 5});
|
||||
})
|
||||
},
|
||||
preview(command) {
|
||||
var ii = layer.load();
|
||||
request(`{$cdn_npm}linux-command/command/${command}.md`, {}, {
|
||||
type: 'GET',
|
||||
dataType:'html',
|
||||
cache: true
|
||||
}).then(data => {
|
||||
layer.close(ii);
|
||||
let result = md.render(data);
|
||||
layer.open({
|
||||
type: 1,
|
||||
area: ["100%","100%"],
|
||||
title: command,
|
||||
skin: 'layui-layer-rim',
|
||||
content: `<div class="alert-container">${result}</div>`
|
||||
})
|
||||
},() => {
|
||||
layer.close(ii);
|
||||
layer.msg('服务器错误', {icon: 5});
|
||||
})
|
||||
}
|
||||
},
|
||||
})
|
||||
</script>
|
||||
{/block}
|
||||
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
/**
|
||||
* Markdown在线编辑
|
||||
*/
|
||||
|
||||
namespace plugin\dev\markdown;
|
||||
|
||||
use app\Plugin;
|
||||
|
||||
class App extends Plugin
|
||||
{
|
||||
|
||||
public function index()
|
||||
{
|
||||
return $this->view();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
{extend name="common/plugin_layout" /}
|
||||
{block name="title"}{$plugin.title} - {:config_get('title')}{/block}
|
||||
{block name="main"}
|
||||
<link rel="stylesheet" href="{$cdn_npm}[email protected]/css/editormd.min.css">
|
||||
<div class="container-fluid" id="app">
|
||||
<div class="col-12 center-block">
|
||||
<div class="card card-preview">
|
||||
<div class="card-inner mt-3">
|
||||
<div class="nya-title nk-ibx-action-item progress-rating">
|
||||
<span class="nk-menu-text font-weight-bold">Markdown在线编辑</span>
|
||||
</div>
|
||||
<div id="editor">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/block}
|
||||
{block name="script"}
|
||||
<script src="{$cdn_npm}[email protected]/editormd.min.js"></script>
|
||||
<script>
|
||||
$(function () {
|
||||
var editor = editormd("editor", {
|
||||
width: "100%",
|
||||
height: "600px",
|
||||
path : "{$cdn_npm}[email protected]/lib/",
|
||||
// theme : "dark",
|
||||
// previewTheme : "dark",
|
||||
// editorTheme : "pastel-on-dark",
|
||||
markdown : '## Hello World',
|
||||
codeFold: true,
|
||||
//syncScrolling : false,
|
||||
saveHTMLToTextarea: true, // 保存 HTML 到 Textarea
|
||||
searchReplace: true,
|
||||
//watch : false, // 关闭实时预览
|
||||
htmlDecode: "style,script,iframe|on*", // 开启 HTML 标签解析,为了安全性,默认不开启
|
||||
//toolbar : false, //关闭工具栏
|
||||
//previewCodeHighlight : false, // 关闭预览 HTML 的代码块高亮,默认开启
|
||||
emoji: true,
|
||||
taskList: true,
|
||||
tocm: true, // Using [TOCM]
|
||||
tex: true, // 开启科学公式TeX语言支持,默认关闭
|
||||
flowChart: true, // 开启流程图支持,默认关闭
|
||||
sequenceDiagram: true, // 开启时序/序列图支持,默认关闭,
|
||||
});
|
||||
});
|
||||
</script>
|
||||
{/block}
|
||||
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
/**
|
||||
* MimeType类型速查
|
||||
*/
|
||||
|
||||
namespace plugin\dev\mime_type;
|
||||
|
||||
use app\Plugin;
|
||||
|
||||
class App extends Plugin
|
||||
{
|
||||
|
||||
public function index()
|
||||
{
|
||||
return $this->view();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2629 @@
|
||||
{extend name="common/plugin_layout" /}
|
||||
{block name="title"}{$plugin.title} - {:config_get('title')}{/block}
|
||||
{block name="main"}
|
||||
<div class="container-xl" id="app">
|
||||
<div class="col-12 center-block">
|
||||
<div class="card card-preview">
|
||||
<div class="card-inner mt-3">
|
||||
<div class="nya-title nk-ibx-action-item progress-rating">
|
||||
<span class="nk-menu-text font-weight-bold">MimeType类型速查</span>
|
||||
</div>
|
||||
<div class="alert alert-info"><em class="icon ni ni-info"></em> 请使用 <span class="badge badge-success">Ctrl+F</span> 查找所需信息。
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-12 col-md-6">
|
||||
<table class="table table-hover table-bordered table-striped table-sm">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>后缀</th>
|
||||
<th>Content-Type(Mime-Type)</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>.3dm</td>
|
||||
<td>x-world/x-3dmf</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.3dmf</td>
|
||||
<td>x-world/x-3dmf</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.a</td>
|
||||
<td>application/octet-stream</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.aab</td>
|
||||
<td>application/x-authorware-bin</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.aam</td>
|
||||
<td>application/x-authorware-map</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.aas</td>
|
||||
<td>application/x-authorware-seg</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.abc</td>
|
||||
<td>text/vnd.abc</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.acgi</td>
|
||||
<td>text/html</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.afl</td>
|
||||
<td>video/animaflex</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.ai</td>
|
||||
<td>application/postscript</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.aif</td>
|
||||
<td>audio/aiff</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.aif</td>
|
||||
<td>audio/x-aiff</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.aifc</td>
|
||||
<td>audio/aiff</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.aifc</td>
|
||||
<td>audio/x-aiff</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.aiff</td>
|
||||
<td>audio/aiff</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.aiff</td>
|
||||
<td>audio/x-aiff</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.aim</td>
|
||||
<td>application/x-aim</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.aip</td>
|
||||
<td>text/x-audiosoft-intra</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.ani</td>
|
||||
<td>application/x-navi-animation</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.aos</td>
|
||||
<td>application/x-nokia-9000-communicator-add-on-software</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.aps</td>
|
||||
<td>application/mime</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.arc</td>
|
||||
<td>application/octet-stream</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.arj</td>
|
||||
<td>application/arj</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.arj</td>
|
||||
<td>application/octet-stream</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.art</td>
|
||||
<td>image/x-jg</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.asf</td>
|
||||
<td>video/x-ms-asf</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.asm</td>
|
||||
<td>text/x-asm</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.asp</td>
|
||||
<td>text/asp</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.asx</td>
|
||||
<td>application/x-mplayer2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.asx</td>
|
||||
<td>video/x-ms-asf</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.asx</td>
|
||||
<td>video/x-ms-asf-plugin</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.au</td>
|
||||
<td>audio/basic</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.au</td>
|
||||
<td>audio/x-au</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.avi</td>
|
||||
<td>application/x-troff-msvideo</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.avi</td>
|
||||
<td>video/avi</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.avi</td>
|
||||
<td>video/msvideo</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.avi</td>
|
||||
<td>video/x-msvideo</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.avs</td>
|
||||
<td>video/avs-video</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.bcpio</td>
|
||||
<td>application/x-bcpio</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.bin</td>
|
||||
<td>application/mac-binary</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.bin</td>
|
||||
<td>application/macbinary</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.bin</td>
|
||||
<td>application/octet-stream</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.bin</td>
|
||||
<td>application/x-binary</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.bin</td>
|
||||
<td>application/x-macbinary</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.bm</td>
|
||||
<td>image/bmp</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.bmp</td>
|
||||
<td>image/bmp</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.bmp</td>
|
||||
<td>image/x-windows-bmp</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.boo</td>
|
||||
<td>application/book</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.book</td>
|
||||
<td>application/book</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.boz</td>
|
||||
<td>application/x-bzip2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.bsh</td>
|
||||
<td>application/x-bsh</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.bz</td>
|
||||
<td>application/x-bzip</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.bz2</td>
|
||||
<td>application/x-bzip2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.c</td>
|
||||
<td>text/plain</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.c</td>
|
||||
<td>text/x-c</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.c++</td>
|
||||
<td>text/plain</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.cat</td>
|
||||
<td>application/vnd.ms-pki.seccat</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.cc</td>
|
||||
<td>text/plain</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.cc</td>
|
||||
<td>text/x-c</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.ccad</td>
|
||||
<td>application/clariscad</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.cco</td>
|
||||
<td>application/x-cocoa</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.cdf</td>
|
||||
<td>application/cdf</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.cdf</td>
|
||||
<td>application/x-cdf</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.cdf</td>
|
||||
<td>application/x-netcdf</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.cer</td>
|
||||
<td>application/pkix-cert</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.cer</td>
|
||||
<td>application/x-x509-ca-cert</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.cha</td>
|
||||
<td>application/x-chat</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.chat</td>
|
||||
<td>application/x-chat</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.class</td>
|
||||
<td>application/java</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.class</td>
|
||||
<td>application/java-byte-code</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.class</td>
|
||||
<td>application/x-java-class</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.com</td>
|
||||
<td>application/octet-stream</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.com</td>
|
||||
<td>text/plain</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.conf</td>
|
||||
<td>text/plain</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.cpio</td>
|
||||
<td>application/x-cpio</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.cpp</td>
|
||||
<td>text/x-c</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.cpt</td>
|
||||
<td>application/mac-compactpro</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.cpt</td>
|
||||
<td>application/x-compactpro</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.cpt</td>
|
||||
<td>application/x-cpt</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.crl</td>
|
||||
<td>application/pkcs-crl</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.crl</td>
|
||||
<td>application/pkix-crl</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.crt</td>
|
||||
<td>application/pkix-cert</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.crt</td>
|
||||
<td>application/x-x509-ca-cert</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.crt</td>
|
||||
<td>application/x-x509-user-cert</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.csh</td>
|
||||
<td>application/x-csh</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.csh</td>
|
||||
<td>text/x-script.csh</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.css</td>
|
||||
<td>application/x-pointplus</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.css</td>
|
||||
<td>text/css</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.cxx</td>
|
||||
<td>text/plain</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.dcr</td>
|
||||
<td>application/x-director</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.deepv</td>
|
||||
<td>application/x-deepv</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.def</td>
|
||||
<td>text/plain</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.der</td>
|
||||
<td>application/x-x509-ca-cert</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.dif</td>
|
||||
<td>video/x-dv</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.dir</td>
|
||||
<td>application/x-director</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.dl</td>
|
||||
<td>video/dl</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.dl</td>
|
||||
<td>video/x-dl</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.doc</td>
|
||||
<td>application/msword</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.dot</td>
|
||||
<td>application/msword</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.dp</td>
|
||||
<td>application/commonground</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.drw</td>
|
||||
<td>application/drafting</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.dump</td>
|
||||
<td>application/octet-stream</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.dv</td>
|
||||
<td>video/x-dv</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.dvi</td>
|
||||
<td>application/x-dvi</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.dwf</td>
|
||||
<td>drawing/x-dwf (old)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.dwf</td>
|
||||
<td>model/vnd.dwf</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.dwg</td>
|
||||
<td>application/acad</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.dwg</td>
|
||||
<td>image/vnd.dwg</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.dwg</td>
|
||||
<td>image/x-dwg</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.dxf</td>
|
||||
<td>application/dxf</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.dxf</td>
|
||||
<td>image/vnd.dwg</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.dxf</td>
|
||||
<td>image/x-dwg</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.dxr</td>
|
||||
<td>application/x-director</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.el</td>
|
||||
<td>text/x-script.elisp</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.elc</td>
|
||||
<td>application/x-bytecode.elisp (compiled elisp)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.elc</td>
|
||||
<td>application/x-elc</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.env</td>
|
||||
<td>application/x-envoy</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.eps</td>
|
||||
<td>application/postscript</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.es</td>
|
||||
<td>application/x-esrehber</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.etx</td>
|
||||
<td>text/x-setext</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.evy</td>
|
||||
<td>application/envoy</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.evy</td>
|
||||
<td>application/x-envoy</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.exe</td>
|
||||
<td>application/octet-stream</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.f</td>
|
||||
<td>text/plain</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.f</td>
|
||||
<td>text/x-fortran</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.f77</td>
|
||||
<td>text/x-fortran</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.f90</td>
|
||||
<td>text/plain</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.f90</td>
|
||||
<td>text/x-fortran</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.fdf</td>
|
||||
<td>application/vnd.fdf</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.fif</td>
|
||||
<td>application/fractals</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.fif</td>
|
||||
<td>image/fif</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.fli</td>
|
||||
<td>video/fli</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.fli</td>
|
||||
<td>video/x-fli</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.flo</td>
|
||||
<td>image/florian</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.flx</td>
|
||||
<td>text/vnd.fmi.flexstor</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.fmf</td>
|
||||
<td>video/x-atomic3d-feature</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.for</td>
|
||||
<td>text/plain</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.for</td>
|
||||
<td>text/x-fortran</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.fpx</td>
|
||||
<td>image/vnd.fpx</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.fpx</td>
|
||||
<td>image/vnd.net-fpx</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.frl</td>
|
||||
<td>application/freeloader</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.funk</td>
|
||||
<td>audio/make</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.g</td>
|
||||
<td>text/plain</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.g3</td>
|
||||
<td>image/g3fax</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.gif</td>
|
||||
<td>image/gif</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.gl</td>
|
||||
<td>video/gl</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.gl</td>
|
||||
<td>video/x-gl</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.gsd</td>
|
||||
<td>audio/x-gsm</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.gsm</td>
|
||||
<td>audio/x-gsm</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.gsp</td>
|
||||
<td>application/x-gsp</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.gss</td>
|
||||
<td>application/x-gss</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.gtar</td>
|
||||
<td>application/x-gtar</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.gz</td>
|
||||
<td>application/x-compressed</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.gz</td>
|
||||
<td>application/x-gzip</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.gzip</td>
|
||||
<td>application/x-gzip</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.gzip</td>
|
||||
<td>multipart/x-gzip</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.h</td>
|
||||
<td>text/plain</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.h</td>
|
||||
<td>text/x-h</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.hdf</td>
|
||||
<td>application/x-hdf</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.help</td>
|
||||
<td>application/x-helpfile</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.hgl</td>
|
||||
<td>application/vnd.hp-hpgl</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.hh</td>
|
||||
<td>text/plain</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.hh</td>
|
||||
<td>text/x-h</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.hlb</td>
|
||||
<td>text/x-script</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.hlp</td>
|
||||
<td>application/hlp</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.hlp</td>
|
||||
<td>application/x-helpfile</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.hlp</td>
|
||||
<td>application/x-winhelp</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.hpg</td>
|
||||
<td>application/vnd.hp-hpgl</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.hpgl</td>
|
||||
<td>application/vnd.hp-hpgl</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.hqx</td>
|
||||
<td>application/binhex</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.hqx</td>
|
||||
<td>application/binhex4</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.hqx</td>
|
||||
<td>application/mac-binhex</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.hqx</td>
|
||||
<td>application/mac-binhex40</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.hqx</td>
|
||||
<td>application/x-binhex40</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.hqx</td>
|
||||
<td>application/x-mac-binhex40</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.hta</td>
|
||||
<td>application/hta</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.htc</td>
|
||||
<td>text/x-component</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.htm</td>
|
||||
<td>text/html</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.html</td>
|
||||
<td>text/html</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.htmls</td>
|
||||
<td>text/html</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.htt</td>
|
||||
<td>text/webviewhtml</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.htx</td>
|
||||
<td>text/html</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.ice</td>
|
||||
<td>x-conference/x-cooltalk</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.ico</td>
|
||||
<td>image/x-icon</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.idc</td>
|
||||
<td>text/plain</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.ief</td>
|
||||
<td>image/ief</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.iefs</td>
|
||||
<td>image/ief</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.iges</td>
|
||||
<td>application/iges</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.iges</td>
|
||||
<td>model/iges</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.igs</td>
|
||||
<td>application/iges</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.igs</td>
|
||||
<td>model/iges</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.ima</td>
|
||||
<td>application/x-ima</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.imap</td>
|
||||
<td>application/x-httpd-imap</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.inf</td>
|
||||
<td>application/inf</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.ins</td>
|
||||
<td>application/x-internett-signup</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.ip</td>
|
||||
<td>application/x-ip2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.isu</td>
|
||||
<td>video/x-isvideo</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.it</td>
|
||||
<td>audio/it</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.iv</td>
|
||||
<td>application/x-inventor</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.ivr</td>
|
||||
<td>i-world/i-vrml</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.ivy</td>
|
||||
<td>application/x-livescreen</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.jam</td>
|
||||
<td>audio/x-jam</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.jav</td>
|
||||
<td>text/plain</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.jav</td>
|
||||
<td>text/x-java-source</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.java</td>
|
||||
<td>text/plain</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.java</td>
|
||||
<td>text/x-java-source</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.jcm</td>
|
||||
<td>application/x-java-commerce</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.jfif</td>
|
||||
<td>image/jpeg</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.jfif</td>
|
||||
<td>image/pjpeg</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.jfif-tbnl</td>
|
||||
<td>image/jpeg</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.jpe</td>
|
||||
<td>image/jpeg</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.jpe</td>
|
||||
<td>image/pjpeg</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.jpeg</td>
|
||||
<td>image/jpeg</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.jpeg</td>
|
||||
<td>image/pjpeg</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.jpg</td>
|
||||
<td>image/jpeg</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.jpg</td>
|
||||
<td>image/pjpeg</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.jps</td>
|
||||
<td>image/x-jps</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.js</td>
|
||||
<td>application/x-javascript</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.js</td>
|
||||
<td>application/javascript</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.js</td>
|
||||
<td>application/ecmascript</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.js</td>
|
||||
<td>text/javascript</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.js</td>
|
||||
<td>text/ecmascript</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.jut</td>
|
||||
<td>image/jutvision</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.kar</td>
|
||||
<td>audio/midi</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.kar</td>
|
||||
<td>music/x-karaoke</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.ksh</td>
|
||||
<td>application/x-ksh</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.ksh</td>
|
||||
<td>text/x-script.ksh</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.la</td>
|
||||
<td>audio/nspaudio</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.la</td>
|
||||
<td>audio/x-nspaudio</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.lam</td>
|
||||
<td>audio/x-liveaudio</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.latex</td>
|
||||
<td>application/x-latex</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.lha</td>
|
||||
<td>application/lha</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.lha</td>
|
||||
<td>application/octet-stream</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.lha</td>
|
||||
<td>application/x-lha</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.lhx</td>
|
||||
<td>application/octet-stream</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.list</td>
|
||||
<td>text/plain</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.lma</td>
|
||||
<td>audio/nspaudio</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.lma</td>
|
||||
<td>audio/x-nspaudio</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.log</td>
|
||||
<td>text/plain</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.lsp</td>
|
||||
<td>application/x-lisp</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.lsp</td>
|
||||
<td>text/x-script.lisp</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.lst</td>
|
||||
<td>text/plain</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.lsx</td>
|
||||
<td>text/x-la-asf</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.ltx</td>
|
||||
<td>application/x-latex</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.lzh</td>
|
||||
<td>application/octet-stream</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.lzh</td>
|
||||
<td>application/x-lzh</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.lzx</td>
|
||||
<td>application/lzx</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.lzx</td>
|
||||
<td>application/octet-stream</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.lzx</td>
|
||||
<td>application/x-lzx</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.m</td>
|
||||
<td>text/plain</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.m</td>
|
||||
<td>text/x-m</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.m1v</td>
|
||||
<td>video/mpeg</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.m2a</td>
|
||||
<td>audio/mpeg</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.m2v</td>
|
||||
<td>video/mpeg</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.m3u</td>
|
||||
<td>audio/x-mpequrl</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.man</td>
|
||||
<td>application/x-troff-man</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.map</td>
|
||||
<td>application/x-navimap</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.mar</td>
|
||||
<td>text/plain</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.mbd</td>
|
||||
<td>application/mbedlet</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.mc$</td>
|
||||
<td>application/x-magic-cap-package-1.0</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.mcd</td>
|
||||
<td>application/mcad</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.mcd</td>
|
||||
<td>application/x-mathcad</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.mcf</td>
|
||||
<td>image/vasa</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.mcf</td>
|
||||
<td>text/mcf</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.mcp</td>
|
||||
<td>application/netmc</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.me</td>
|
||||
<td>application/x-troff-me</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.mht</td>
|
||||
<td>message/rfc822</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.mhtml</td>
|
||||
<td>message/rfc822</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.mid</td>
|
||||
<td>application/x-midi</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.mid</td>
|
||||
<td>audio/midi</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.mid</td>
|
||||
<td>audio/x-mid</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.mid</td>
|
||||
<td>audio/x-midi</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.mid</td>
|
||||
<td>music/crescendo</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.mid</td>
|
||||
<td>x-music/x-midi</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.midi</td>
|
||||
<td>application/x-midi</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.midi</td>
|
||||
<td>audio/midi</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.midi</td>
|
||||
<td>audio/x-mid</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.midi</td>
|
||||
<td>audio/x-midi</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.midi</td>
|
||||
<td>music/crescendo</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.midi</td>
|
||||
<td>x-music/x-midi</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.mif</td>
|
||||
<td>application/x-frame</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.mif</td>
|
||||
<td>application/x-mif</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.mime</td>
|
||||
<td>message/rfc822</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.mime</td>
|
||||
<td>www/mime</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.mjf</td>
|
||||
<td>audio/x-vnd.audioexplosion.mjuicemediafile</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.mjpg</td>
|
||||
<td>video/x-motion-jpeg</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.mm</td>
|
||||
<td>application/base64</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.mm</td>
|
||||
<td>application/x-meme</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.mme</td>
|
||||
<td>application/base64</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.mod</td>
|
||||
<td>audio/mod</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.mod</td>
|
||||
<td>audio/x-mod</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.moov</td>
|
||||
<td>video/quicktime</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.mov</td>
|
||||
<td>video/quicktime</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.movie</td>
|
||||
<td>video/x-sgi-movie</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.mp2</td>
|
||||
<td>audio/mpeg</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.mp2</td>
|
||||
<td>audio/x-mpeg</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.mp2</td>
|
||||
<td>video/mpeg</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.mp2</td>
|
||||
<td>video/x-mpeg</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.mp2</td>
|
||||
<td>video/x-mpeq2a</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.mp3</td>
|
||||
<td>audio/mpeg3</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.mp3</td>
|
||||
<td>audio/x-mpeg-3</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.mp3</td>
|
||||
<td>video/mpeg</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.mp3</td>
|
||||
<td>video/x-mpeg</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.mpa</td>
|
||||
<td>audio/mpeg</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.mpa</td>
|
||||
<td>video/mpeg</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.mpc</td>
|
||||
<td>application/x-project</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.mpe</td>
|
||||
<td>video/mpeg</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.mpeg</td>
|
||||
<td>video/mpeg</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.mpg</td>
|
||||
<td>audio/mpeg</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.mpg</td>
|
||||
<td>video/mpeg</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.mpga</td>
|
||||
<td>audio/mpeg</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.mpp</td>
|
||||
<td>application/vnd.ms-project</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.mpt</td>
|
||||
<td>application/x-project</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.mpv</td>
|
||||
<td>application/x-project</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.mpx</td>
|
||||
<td>application/x-project</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.mrc</td>
|
||||
<td>application/marc</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.ms</td>
|
||||
<td>application/x-troff-ms</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.mv</td>
|
||||
<td>video/x-sgi-movie</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.my</td>
|
||||
<td>audio/make</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.mzz</td>
|
||||
<td>application/x-vnd.audioexplosion.mzz</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.nap</td>
|
||||
<td>image/naplps</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.naplps</td>
|
||||
<td>image/naplps</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.nc</td>
|
||||
<td>application/x-netcdf</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="col-12 col-md-6">
|
||||
<table class="table table-hover table-bordered table-striped table-sm">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>后缀</th>
|
||||
<th>Content-Type(Mime-Type)</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>.ncm</td>
|
||||
<td>application/vnd.nokia.configuration-message</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.nif</td>
|
||||
<td>image/x-niff</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.niff</td>
|
||||
<td>image/x-niff</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.nix</td>
|
||||
<td>application/x-mix-transfer</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.nsc</td>
|
||||
<td>application/x-conference</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.nvd</td>
|
||||
<td>application/x-navidoc</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.o</td>
|
||||
<td>application/octet-stream</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.oda</td>
|
||||
<td>application/oda</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.omc</td>
|
||||
<td>application/x-omc</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.omcd</td>
|
||||
<td>application/x-omcdatamaker</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.omcr</td>
|
||||
<td>application/x-omcregerator</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.p</td>
|
||||
<td>text/x-pascal</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.p10</td>
|
||||
<td>application/pkcs10</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.p10</td>
|
||||
<td>application/x-pkcs10</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.p12</td>
|
||||
<td>application/pkcs-12</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.p12</td>
|
||||
<td>application/x-pkcs12</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.p7a</td>
|
||||
<td>application/x-pkcs7-signature</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.p7c</td>
|
||||
<td>application/pkcs7-mime</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.p7c</td>
|
||||
<td>application/x-pkcs7-mime</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.p7m</td>
|
||||
<td>application/pkcs7-mime</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.p7m</td>
|
||||
<td>application/x-pkcs7-mime</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.p7r</td>
|
||||
<td>application/x-pkcs7-certreqresp</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.p7s</td>
|
||||
<td>application/pkcs7-signature</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.part</td>
|
||||
<td>application/pro_eng</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.pas</td>
|
||||
<td>text/pascal</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.pbm</td>
|
||||
<td>image/x-portable-bitmap</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.pcl</td>
|
||||
<td>application/vnd.hp-pcl</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.pcl</td>
|
||||
<td>application/x-pcl</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.pct</td>
|
||||
<td>image/x-pict</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.pcx</td>
|
||||
<td>image/x-pcx</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.pdb</td>
|
||||
<td>chemical/x-pdb</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.pdf</td>
|
||||
<td>application/pdf</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.pfunk</td>
|
||||
<td>audio/make</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.pfunk</td>
|
||||
<td>audio/make.my.funk</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.pgm</td>
|
||||
<td>image/x-portable-graymap</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.pgm</td>
|
||||
<td>image/x-portable-greymap</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.pic</td>
|
||||
<td>image/pict</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.pict</td>
|
||||
<td>image/pict</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.pkg</td>
|
||||
<td>application/x-newton-compatible-pkg</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.pko</td>
|
||||
<td>application/vnd.ms-pki.pko</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.pl</td>
|
||||
<td>text/plain</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.pl</td>
|
||||
<td>text/x-script.perl</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.plx</td>
|
||||
<td>application/x-pixclscript</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.pm</td>
|
||||
<td>image/x-xpixmap</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.pm</td>
|
||||
<td>text/x-script.perl-module</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.pm4</td>
|
||||
<td>application/x-pagemaker</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.pm5</td>
|
||||
<td>application/x-pagemaker</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.png</td>
|
||||
<td>image/png</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.pnm</td>
|
||||
<td>application/x-portable-anymap</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.pnm</td>
|
||||
<td>image/x-portable-anymap</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.pot</td>
|
||||
<td>application/mspowerpoint</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.pot</td>
|
||||
<td>application/vnd.ms-powerpoint</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.pov</td>
|
||||
<td>model/x-pov</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.ppa</td>
|
||||
<td>application/vnd.ms-powerpoint</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.ppm</td>
|
||||
<td>image/x-portable-pixmap</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.pps</td>
|
||||
<td>application/mspowerpoint</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.pps</td>
|
||||
<td>application/vnd.ms-powerpoint</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.ppt</td>
|
||||
<td>application/mspowerpoint</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.ppt</td>
|
||||
<td>application/powerpoint</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.ppt</td>
|
||||
<td>application/vnd.ms-powerpoint</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.ppt</td>
|
||||
<td>application/x-mspowerpoint</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.ppz</td>
|
||||
<td>application/mspowerpoint</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.pre</td>
|
||||
<td>application/x-freelance</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.prt</td>
|
||||
<td>application/pro_eng</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.ps</td>
|
||||
<td>application/postscript</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.psd</td>
|
||||
<td>application/octet-stream</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.pvu</td>
|
||||
<td>paleovu/x-pv</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.pwz</td>
|
||||
<td>application/vnd.ms-powerpoint</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.py</td>
|
||||
<td>text/x-script.phyton</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.pyc</td>
|
||||
<td>application/x-bytecode.python</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.qcp</td>
|
||||
<td>audio/vnd.qcelp</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.qd3</td>
|
||||
<td>x-world/x-3dmf</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.qd3d</td>
|
||||
<td>x-world/x-3dmf</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.qif</td>
|
||||
<td>image/x-quicktime</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.qt</td>
|
||||
<td>video/quicktime</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.qtc</td>
|
||||
<td>video/x-qtc</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.qti</td>
|
||||
<td>image/x-quicktime</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.qtif</td>
|
||||
<td>image/x-quicktime</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.ra</td>
|
||||
<td>audio/x-pn-realaudio</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.ra</td>
|
||||
<td>audio/x-pn-realaudio-plugin</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.ra</td>
|
||||
<td>audio/x-realaudio</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.ram</td>
|
||||
<td>audio/x-pn-realaudio</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.ras</td>
|
||||
<td>application/x-cmu-raster</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.ras</td>
|
||||
<td>image/cmu-raster</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.ras</td>
|
||||
<td>image/x-cmu-raster</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.rast</td>
|
||||
<td>image/cmu-raster</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.rexx</td>
|
||||
<td>text/x-script.rexx</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.rf</td>
|
||||
<td>image/vnd.rn-realflash</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.rgb</td>
|
||||
<td>image/x-rgb</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.rm</td>
|
||||
<td>application/vnd.rn-realmedia</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.rm</td>
|
||||
<td>audio/x-pn-realaudio</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.rmi</td>
|
||||
<td>audio/mid</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.rmm</td>
|
||||
<td>audio/x-pn-realaudio</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.rmp</td>
|
||||
<td>audio/x-pn-realaudio</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.rmp</td>
|
||||
<td>audio/x-pn-realaudio-plugin</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.rng</td>
|
||||
<td>application/ringing-tones</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.rng</td>
|
||||
<td>application/vnd.nokia.ringing-tone</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.rnx</td>
|
||||
<td>application/vnd.rn-realplayer</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.roff</td>
|
||||
<td>application/x-troff</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.rp</td>
|
||||
<td>image/vnd.rn-realpix</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.rpm</td>
|
||||
<td>audio/x-pn-realaudio-plugin</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.rt</td>
|
||||
<td>text/richtext</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.rt</td>
|
||||
<td>text/vnd.rn-realtext</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.rtf</td>
|
||||
<td>application/rtf</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.rtf</td>
|
||||
<td>application/x-rtf</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.rtf</td>
|
||||
<td>text/richtext</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.rtx</td>
|
||||
<td>application/rtf</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.rtx</td>
|
||||
<td>text/richtext</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.rv</td>
|
||||
<td>video/vnd.rn-realvideo</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.s</td>
|
||||
<td>text/x-asm</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.s3m</td>
|
||||
<td>audio/s3m</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.saveme</td>
|
||||
<td>application/octet-stream</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.sbk</td>
|
||||
<td>application/x-tbook</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.scm</td>
|
||||
<td>application/x-lotusscreencam</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.scm</td>
|
||||
<td>text/x-script.guile</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.scm</td>
|
||||
<td>text/x-script.scheme</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.scm</td>
|
||||
<td>video/x-scm</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.sdml</td>
|
||||
<td>text/plain</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.sdp</td>
|
||||
<td>application/sdp</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.sdp</td>
|
||||
<td>application/x-sdp</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.sdr</td>
|
||||
<td>application/sounder</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.sea</td>
|
||||
<td>application/sea</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.sea</td>
|
||||
<td>application/x-sea</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.set</td>
|
||||
<td>application/set</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.sgm</td>
|
||||
<td>text/sgml</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.sgm</td>
|
||||
<td>text/x-sgml</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.sgml</td>
|
||||
<td>text/sgml</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.sgml</td>
|
||||
<td>text/x-sgml</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.sh</td>
|
||||
<td>application/x-bsh</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.sh</td>
|
||||
<td>application/x-sh</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.sh</td>
|
||||
<td>application/x-shar</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.sh</td>
|
||||
<td>text/x-script.sh</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.shar</td>
|
||||
<td>application/x-bsh</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.shar</td>
|
||||
<td>application/x-shar</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.shtml</td>
|
||||
<td>text/html</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.shtml</td>
|
||||
<td>text/x-server-parsed-html</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.sid</td>
|
||||
<td>audio/x-psid</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.sit</td>
|
||||
<td>application/x-sit</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.sit</td>
|
||||
<td>application/x-stuffit</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.skd</td>
|
||||
<td>application/x-koan</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.skm</td>
|
||||
<td>application/x-koan</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.skp</td>
|
||||
<td>application/x-koan</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.skt</td>
|
||||
<td>application/x-koan</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.sl</td>
|
||||
<td>application/x-seelogo</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.smi</td>
|
||||
<td>application/smil</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.smil</td>
|
||||
<td>application/smil</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.snd</td>
|
||||
<td>audio/basic</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.snd</td>
|
||||
<td>audio/x-adpcm</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.sol</td>
|
||||
<td>application/solids</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.spc</td>
|
||||
<td>application/x-pkcs7-certificates</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.spc</td>
|
||||
<td>text/x-speech</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.spl</td>
|
||||
<td>application/futuresplash</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.spr</td>
|
||||
<td>application/x-sprite</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.sprite</td>
|
||||
<td>application/x-sprite</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.src</td>
|
||||
<td>application/x-wais-source</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.ssi</td>
|
||||
<td>text/x-server-parsed-html</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.ssm</td>
|
||||
<td>application/streamingmedia</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.sst</td>
|
||||
<td>application/vnd.ms-pki.certstore</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.step</td>
|
||||
<td>application/step</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.stl</td>
|
||||
<td>application/sla</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.stl</td>
|
||||
<td>application/vnd.ms-pki.stl</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.stl</td>
|
||||
<td>application/x-navistyle</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.stp</td>
|
||||
<td>application/step</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.sv4cpio</td>
|
||||
<td>application/x-sv4cpio</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.sv4crc</td>
|
||||
<td>application/x-sv4crc</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.svf</td>
|
||||
<td>image/vnd.dwg</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.svf</td>
|
||||
<td>image/x-dwg</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.svr</td>
|
||||
<td>application/x-world</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.svr</td>
|
||||
<td>x-world/x-svr</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.swf</td>
|
||||
<td>application/x-shockwave-flash</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.t</td>
|
||||
<td>application/x-troff</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.talk</td>
|
||||
<td>text/x-speech</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.tar</td>
|
||||
<td>application/x-tar</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.tbk</td>
|
||||
<td>application/toolbook</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.tbk</td>
|
||||
<td>application/x-tbook</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.tcl</td>
|
||||
<td>application/x-tcl</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.tcl</td>
|
||||
<td>text/x-script.tcl</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.tcsh</td>
|
||||
<td>text/x-script.tcsh</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.tex</td>
|
||||
<td>application/x-tex</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.texi</td>
|
||||
<td>application/x-texinfo</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.texinfo</td>
|
||||
<td>application/x-texinfo</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.text</td>
|
||||
<td>application/plain</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.text</td>
|
||||
<td>text/plain</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.tgz</td>
|
||||
<td>application/gnutar</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.tgz</td>
|
||||
<td>application/x-compressed</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.tif</td>
|
||||
<td>image/tiff</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.tif</td>
|
||||
<td>image/x-tiff</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.tiff</td>
|
||||
<td>image/tiff</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.tiff</td>
|
||||
<td>image/x-tiff</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.tr</td>
|
||||
<td>application/x-troff</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.tsi</td>
|
||||
<td>audio/tsp-audio</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.tsp</td>
|
||||
<td>application/dsptype</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.tsp</td>
|
||||
<td>audio/tsplayer</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.tsv</td>
|
||||
<td>text/tab-separated-values</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.turbot</td>
|
||||
<td>image/florian</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.txt</td>
|
||||
<td>text/plain</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.uil</td>
|
||||
<td>text/x-uil</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.uni</td>
|
||||
<td>text/uri-list</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.unis</td>
|
||||
<td>text/uri-list</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.unv</td>
|
||||
<td>application/i-deas</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.uri</td>
|
||||
<td>text/uri-list</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.uris</td>
|
||||
<td>text/uri-list</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.ustar</td>
|
||||
<td>application/x-ustar</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.ustar</td>
|
||||
<td>multipart/x-ustar</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.uu</td>
|
||||
<td>application/octet-stream</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.uu</td>
|
||||
<td>text/x-uuencode</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.uue</td>
|
||||
<td>text/x-uuencode</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.vcd</td>
|
||||
<td>application/x-cdlink</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.vcs</td>
|
||||
<td>text/x-vcalendar</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.vda</td>
|
||||
<td>application/vda</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.vdo</td>
|
||||
<td>video/vdo</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.vew</td>
|
||||
<td>application/groupwise</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.viv</td>
|
||||
<td>video/vivo</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.viv</td>
|
||||
<td>video/vnd.vivo</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.vivo</td>
|
||||
<td>video/vivo</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.vivo</td>
|
||||
<td>video/vnd.vivo</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.vmd</td>
|
||||
<td>application/vocaltec-media-desc</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.vmf</td>
|
||||
<td>application/vocaltec-media-file</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.voc</td>
|
||||
<td>audio/voc</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.voc</td>
|
||||
<td>audio/x-voc</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.vos</td>
|
||||
<td>video/vosaic</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.vox</td>
|
||||
<td>audio/voxware</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.vqe</td>
|
||||
<td>audio/x-twinvq-plugin</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.vqf</td>
|
||||
<td>audio/x-twinvq</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.vql</td>
|
||||
<td>audio/x-twinvq-plugin</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.vrml</td>
|
||||
<td>application/x-vrml</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.vrml</td>
|
||||
<td>model/vrml</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.vrml</td>
|
||||
<td>x-world/x-vrml</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.vrt</td>
|
||||
<td>x-world/x-vrt</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.vsd</td>
|
||||
<td>application/x-visio</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.vst</td>
|
||||
<td>application/x-visio</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.vsw</td>
|
||||
<td>application/x-visio</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.w60</td>
|
||||
<td>application/wordperfect6.0</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.w61</td>
|
||||
<td>application/wordperfect6.1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.w6w</td>
|
||||
<td>application/msword</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.wav</td>
|
||||
<td>audio/wav</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.wav</td>
|
||||
<td>audio/x-wav</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.wb1</td>
|
||||
<td>application/x-qpro</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.wbmp</td>
|
||||
<td>image/vnd.wap.wbmp</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.web</td>
|
||||
<td>application/vnd.xara</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.wiz</td>
|
||||
<td>application/msword</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.wk1</td>
|
||||
<td>application/x-123</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.wmf</td>
|
||||
<td>windows/metafile</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.wml</td>
|
||||
<td>text/vnd.wap.wml</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.wmlc</td>
|
||||
<td>application/vnd.wap.wmlc</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.wmls</td>
|
||||
<td>text/vnd.wap.wmlscript</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.wmlsc</td>
|
||||
<td>application/vnd.wap.wmlscriptc</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.word</td>
|
||||
<td>application/msword</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.wp</td>
|
||||
<td>application/wordperfect</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.wp5</td>
|
||||
<td>application/wordperfect</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.wp5</td>
|
||||
<td>application/wordperfect6.0</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.wp6</td>
|
||||
<td>application/wordperfect</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.wpd</td>
|
||||
<td>application/wordperfect</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.wpd</td>
|
||||
<td>application/x-wpwin</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.wq1</td>
|
||||
<td>application/x-lotus</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.wri</td>
|
||||
<td>application/mswrite</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.wri</td>
|
||||
<td>application/x-wri</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.wrl</td>
|
||||
<td>application/x-world</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.wrl</td>
|
||||
<td>model/vrml</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.wrl</td>
|
||||
<td>x-world/x-vrml</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.wrz</td>
|
||||
<td>model/vrml</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.wrz</td>
|
||||
<td>x-world/x-vrml</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.wsc</td>
|
||||
<td>text/scriplet</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.wsrc</td>
|
||||
<td>application/x-wais-source</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.wtk</td>
|
||||
<td>application/x-wintalk</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.xbm</td>
|
||||
<td>image/x-xbitmap</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.xbm</td>
|
||||
<td>image/x-xbm</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.xbm</td>
|
||||
<td>image/xbm</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.xdr</td>
|
||||
<td>video/x-amt-demorun</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.xgz</td>
|
||||
<td>xgl/drawing</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.xif</td>
|
||||
<td>image/vnd.xiff</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.xl</td>
|
||||
<td>application/excel</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.xla</td>
|
||||
<td>application/excel</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.xla</td>
|
||||
<td>application/x-excel</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.xla</td>
|
||||
<td>application/x-msexcel</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.xlb</td>
|
||||
<td>application/excel</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.xlb</td>
|
||||
<td>application/vnd.ms-excel</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.xlb</td>
|
||||
<td>application/x-excel</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.xlc</td>
|
||||
<td>application/excel</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.xlc</td>
|
||||
<td>application/vnd.ms-excel</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.xlc</td>
|
||||
<td>application/x-excel</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.xld</td>
|
||||
<td>application/excel</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.xld</td>
|
||||
<td>application/x-excel</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.xlk</td>
|
||||
<td>application/excel</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.xlk</td>
|
||||
<td>application/x-excel</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.xll</td>
|
||||
<td>application/excel</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.xll</td>
|
||||
<td>application/vnd.ms-excel</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.xll</td>
|
||||
<td>application/x-excel</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.xlm</td>
|
||||
<td>application/excel</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.xlm</td>
|
||||
<td>application/vnd.ms-excel</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.xlm</td>
|
||||
<td>application/x-excel</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.xls</td>
|
||||
<td>application/excel</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.xls</td>
|
||||
<td>application/vnd.ms-excel</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.xls</td>
|
||||
<td>application/x-excel</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.xls</td>
|
||||
<td>application/x-msexcel</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.xlt</td>
|
||||
<td>application/excel</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.xlt</td>
|
||||
<td>application/x-excel</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.xlv</td>
|
||||
<td>application/excel</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.xlv</td>
|
||||
<td>application/x-excel</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.xlw</td>
|
||||
<td>application/excel</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.xlw</td>
|
||||
<td>application/vnd.ms-excel</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.xlw</td>
|
||||
<td>application/x-excel</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.xlw</td>
|
||||
<td>application/x-msexcel</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.xm</td>
|
||||
<td>audio/xm</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.xml</td>
|
||||
<td>application/xml</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.xml</td>
|
||||
<td>text/xml</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.xmz</td>
|
||||
<td>xgl/movie</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.xpix</td>
|
||||
<td>application/x-vnd.ls-xpix</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.xpm</td>
|
||||
<td>image/x-xpixmap</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.xpm</td>
|
||||
<td>image/xpm</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.x-png</td>
|
||||
<td>image/png</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.xsr</td>
|
||||
<td>video/x-amt-showrun</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.xwd</td>
|
||||
<td>image/x-xwd</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.xwd</td>
|
||||
<td>image/x-xwindowdump</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.xyz</td>
|
||||
<td>chemical/x-pdb</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.z</td>
|
||||
<td>application/x-compress</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.z</td>
|
||||
<td>application/x-compressed</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.zip</td>
|
||||
<td>application/x-compressed</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.zip</td>
|
||||
<td>application/x-zip-compressed</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.zip</td>
|
||||
<td>application/zip</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.zip</td>
|
||||
<td>multipart/x-zip</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.zoo</td>
|
||||
<td>application/octet-stream</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>.zsh</td>
|
||||
<td>text/x-script.zsh</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/block}
|
||||
{block name="script"}
|
||||
{/block}
|
||||
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
/**
|
||||
* RGB颜色对照表
|
||||
*/
|
||||
|
||||
namespace plugin\dev\rgb_color;
|
||||
|
||||
use app\Plugin;
|
||||
|
||||
class App extends Plugin
|
||||
{
|
||||
|
||||
public function index()
|
||||
{
|
||||
return $this->view();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2318 @@
|
||||
{extend name="common/plugin_layout" /}
|
||||
{block name="title"}{$plugin.title} - {:config_get('title')}{/block}
|
||||
{block name="main"}
|
||||
<div class="container-xl" id="app">
|
||||
<div class="col-12 center-block">
|
||||
<div class="card card-preview">
|
||||
<div class="card-inner mt-3">
|
||||
<div class="nya-title nk-ibx-action-item progress-rating">
|
||||
<span class="nk-menu-text font-weight-bold">RGB颜色对照表</span>
|
||||
</div>
|
||||
<div class="alert alert-info"><em class="icon ni ni-info"></em> 快速查找颜色请按 <span class="badge badge-success">Ctrl+F</span>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-12 col-md-6">
|
||||
<table class="table table-hover table-bordered">
|
||||
<thead>
|
||||
<th align="center">实色效果</th>
|
||||
<th align="center">英文名称 </th>
|
||||
<th align="center">R.G.B </th>
|
||||
<th align="center">16色</th></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td bgcolor="#fffafa"> </td>
|
||||
<td>Snow </td>
|
||||
<td>255 250 250 </td>
|
||||
<td>#FFFAFA</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#f8f8ff"> </td>
|
||||
<td>GhostWhite</td>
|
||||
<td>248 248 255 </td>
|
||||
<td>#F8F8FF</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#f5f5f5"> </td>
|
||||
<td>WhiteSmoke</td>
|
||||
<td>245 245 245 </td>
|
||||
<td>#F5F5F5</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#dcdcdc"> </td>
|
||||
<td>Gainsboro</td>
|
||||
<td>220 220 220</td>
|
||||
<td>#DCDCDC</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td bgcolor="#fffaf0"> </td>
|
||||
<td>FloralWhite</td>
|
||||
<td>255 250 240 </td>
|
||||
<td>#FFFAF0</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#fdf5e6"> </td>
|
||||
<td>OldLace</td>
|
||||
<td>253 245 230 </td>
|
||||
<td>#FDF5E6</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#faf0e6"> </td>
|
||||
<td>Linen</td>
|
||||
<td>250 240 230 </td>
|
||||
<td>#FAF0E6</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#faebd7"> </td>
|
||||
<td>AntiqueWhite</td>
|
||||
<td>250 235 215 </td>
|
||||
<td>#FAEBD7</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ffefd5"> </td>
|
||||
<td>PapayaWhip</td>
|
||||
<td>255 239 213 </td>
|
||||
<td>#FFEFD5</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ffebcd"> </td>
|
||||
<td>BlanchedAlmond</td>
|
||||
<td>255 235 205 </td>
|
||||
<td>#FFEBCD</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ffe4c4"> </td>
|
||||
<td>Bisque</td>
|
||||
<td>255 228 196 </td>
|
||||
<td>#FFE4C4</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ffdab9"> </td>
|
||||
<td>PeachPuff</td>
|
||||
<td>255 218 185 </td>
|
||||
<td>#FFDAB9</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ffdead"> </td>
|
||||
<td>NavajoWhite</td>
|
||||
<td>255 222 173 </td>
|
||||
<td>#FFDEAD</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ffe4b5"> </td>
|
||||
<td>Moccasin</td>
|
||||
<td>255 228 181 </td>
|
||||
<td>#FFE4B5</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#fff8dc"> </td>
|
||||
<td>Cornsilk</td>
|
||||
<td>255 248 220 </td>
|
||||
<td>#FFF8DC</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#fffff0"> </td>
|
||||
<td>Ivory</td>
|
||||
<td>255 255 240 </td>
|
||||
<td>#FFFFF0</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#fffacd"> </td>
|
||||
<td>LemonChiffon</td>
|
||||
<td>255 250 205 </td>
|
||||
<td>#FFFACD</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#fff5ee"> </td>
|
||||
<td>Seashell</td>
|
||||
<td>255 245 238 </td>
|
||||
<td>#FFF5EE</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#f0fff0"> </td>
|
||||
<td>Honeydew</td>
|
||||
<td>240 255 240 </td>
|
||||
<td>#F0FFF0</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#f5fffa"> </td>
|
||||
<td>MintCream</td>
|
||||
<td>245 255 250 </td>
|
||||
<td>#F5FFFA</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#f0ffff"> </td>
|
||||
<td>Azure</td>
|
||||
<td>240 255 255 </td>
|
||||
<td>#F0FFFF</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#f0f8ff"> </td>
|
||||
<td>AliceBlue</td>
|
||||
<td>240 248 255 </td>
|
||||
<td>#F0F8FF</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#e6e6fa"> </td>
|
||||
<td>lavender</td>
|
||||
<td>230 230 250 </td>
|
||||
<td>#E6E6FA</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#fff0f5"> </td>
|
||||
<td>LavenderBlush</td>
|
||||
<td>255 240 245 </td>
|
||||
<td>#FFF0F5</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ffe4e1"> </td>
|
||||
<td>MistyRose</td>
|
||||
<td>255 228 225 </td>
|
||||
<td>#FFE4E1</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ffffff"> </td>
|
||||
<td>White</td>
|
||||
<td>255 255 255 </td>
|
||||
<td>#FFFFFF</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#000000"> </td>
|
||||
<td>Black</td>
|
||||
<td>0 0 0 </td>
|
||||
<td>#000000</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#2f4f4f"> </td>
|
||||
<td>DarkSlateGray</td>
|
||||
<td>47 79 79 </td>
|
||||
<td>#2F4F4F</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#696969"> </td>
|
||||
<td>DimGrey</td>
|
||||
<td>105 105 105 </td>
|
||||
<td>#696969</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#708090"> </td>
|
||||
<td>SlateGrey</td>
|
||||
<td>112 128 144 </td>
|
||||
<td>#708090</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#778899"> </td>
|
||||
<td>LightSlateGray</td>
|
||||
<td>119 136 153 </td>
|
||||
<td>#778899</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#bebebe"> </td>
|
||||
<td>Grey</td>
|
||||
<td>190 190 190 </td>
|
||||
<td>#BEBEBE</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#d3d3d3"> </td>
|
||||
<td>LightGray</td>
|
||||
<td>211 211 211 </td>
|
||||
<td>#D3D3D3</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#191970"> </td>
|
||||
<td>MidnightBlue</td>
|
||||
<td>25 25 112 </td>
|
||||
<td>#191970</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#000080"> </td>
|
||||
<td>NavyBlue</td>
|
||||
<td>0 0 128 </td>
|
||||
<td>#000080</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#6495ed"> </td>
|
||||
<td>CornflowerBlue</td>
|
||||
<td>100 149 237 </td>
|
||||
<td>#6495ED</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#483d8b"> </td>
|
||||
<td>DarkSlateBlue</td>
|
||||
<td>72 61 139 </td>
|
||||
<td>#483D8B</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#6a5acd"> </td>
|
||||
<td>SlateBlue</td>
|
||||
<td>106 90 205 </td>
|
||||
<td>#6A5ACD</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#7b68ee"> </td>
|
||||
<td>MediumSlateBlue</td>
|
||||
<td>123 104 238 </td>
|
||||
<td>#7B68EE</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8470ff"> </td>
|
||||
<td>LightSlateBlue</td>
|
||||
<td>132 112 255 </td>
|
||||
<td>#8470FF</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#0000cd"> </td>
|
||||
<td>MediumBlue</td>
|
||||
<td>0 0 205 </td>
|
||||
<td>#0000CD</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#4169e1"> </td>
|
||||
<td>RoyalBlue</td>
|
||||
<td>65 105 225 </td>
|
||||
<td>#4169E1</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#0000ff"> </td>
|
||||
<td>Blue </td>
|
||||
<td>0 0 255 </td>
|
||||
<td>#0000FF</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#1e90ff"> </td>
|
||||
<td>DodgerBlue</td>
|
||||
<td>30 144 255 </td>
|
||||
<td>#1E90FF</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#00bfff"> </td>
|
||||
<td>DeepSkyBlue</td>
|
||||
<td>0 191 255 </td>
|
||||
<td>#00BFFF</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#87ceeb"> </td>
|
||||
<td>SkyBlue</td>
|
||||
<td>135 206 235 </td>
|
||||
<td>#87CEEB</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#87cefa"> </td>
|
||||
<td>LightSkyBlue</td>
|
||||
<td>135 206 250 </td>
|
||||
<td>#87CEFA</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#4682b4"> </td>
|
||||
<td>SteelBlue</td>
|
||||
<td>70 130 180 </td>
|
||||
<td>#4682B4</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#b0c4de"> </td>
|
||||
<td>LightSteelBlue</td>
|
||||
<td>176 196 222 </td>
|
||||
<td>#B0C4DE</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#add8e6"> </td>
|
||||
<td>LightBlue</td>
|
||||
<td>173 216 230 </td>
|
||||
<td>#ADD8E6</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#b0e0e6"> </td>
|
||||
<td>PowderBlue</td>
|
||||
<td>176 224 230 </td>
|
||||
<td>#B0E0E6</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#afeeee"> </td>
|
||||
<td>PaleTurquoise</td>
|
||||
<td>175 238 238 </td>
|
||||
<td>#AFEEEE</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#00ced1"> </td>
|
||||
<td>DarkTurquoise</td>
|
||||
<td>0 206 209 </td>
|
||||
<td>#00CED1</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#48d1cc"> </td>
|
||||
<td>MediumTurquoise</td>
|
||||
<td>72 209 204 </td>
|
||||
<td>#48D1CC</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#40e0d0"> </td>
|
||||
<td>Turquoise</td>
|
||||
<td>64 224 208 </td>
|
||||
<td>#40E0D0</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#00ffff"> </td>
|
||||
<td>Cyan </td>
|
||||
<td>0 255 255 </td>
|
||||
<td>#00FFFF</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#e0ffff"> </td>
|
||||
<td>LightCyan</td>
|
||||
<td>224 255 255 </td>
|
||||
<td>#E0FFFF</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#5f9ea0"> </td>
|
||||
<td>CadetBlue</td>
|
||||
<td>95 158 160 </td>
|
||||
<td>#5F9EA0</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#66cdaa"> </td>
|
||||
<td>MediumAquamarine</td>
|
||||
<td>102 205 170 </td>
|
||||
<td>#66CDAA</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#7fffd4"> </td>
|
||||
<td>Aquamarine</td>
|
||||
<td>127 255 212 </td>
|
||||
<td>#7FFFD4</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#006400"> </td>
|
||||
<td>DarkGreen</td>
|
||||
<td>0 100 0 </td>
|
||||
<td>#006400</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#556b2f"> </td>
|
||||
<td>DarkOliveGreen</td>
|
||||
<td>85 107 47 </td>
|
||||
<td>#556B2F</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8fbc8f"> </td>
|
||||
<td>DarkSeaGreen</td>
|
||||
<td>143 188 143 </td>
|
||||
<td>#8FBC8F</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#2e8b57"> </td>
|
||||
<td>SeaGreen</td>
|
||||
<td>46 139 87 </td>
|
||||
<td>#2E8B57</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#3cb371"> </td>
|
||||
<td>MediumSeaGreen</td>
|
||||
<td>60 179 113 </td>
|
||||
<td>#3CB371</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#20b2aa"> </td>
|
||||
<td>LightSeaGreen</td>
|
||||
<td>32 178 170 </td>
|
||||
<td>#20B2AA</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#98fb98"> </td>
|
||||
<td>PaleGreen</td>
|
||||
<td>152 251 152 </td>
|
||||
<td>#98FB98</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#00ff7f"> </td>
|
||||
<td>SpringGreen</td>
|
||||
<td>0 255 127 </td>
|
||||
<td>#00FF7F</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#7cfc00"> </td>
|
||||
<td>LawnGreen</td>
|
||||
<td>124 252 0 </td>
|
||||
<td>#7CFC00</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#00ff00"> </td>
|
||||
<td>Green</td>
|
||||
<td>0 255 0 </td>
|
||||
<td>#00FF00</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#7fff00"> </td>
|
||||
<td>Chartreuse</td>
|
||||
<td>127 255 0 </td>
|
||||
<td>#7FFF00</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#00fa9a"> </td>
|
||||
<td>MedSpringGreen</td>
|
||||
<td>0 250 154 </td>
|
||||
<td>#00FA9A</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#adff2f"> </td>
|
||||
<td>GreenYellow</td>
|
||||
<td>173 255 47 </td>
|
||||
<td>#ADFF2F</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#32cd32"> </td>
|
||||
<td>LimeGreen</td>
|
||||
<td>50 205 50 </td>
|
||||
<td>#32CD32</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#9acd32"> </td>
|
||||
<td>YellowGreen</td>
|
||||
<td>154 205 50 </td>
|
||||
<td>#9ACD32</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#228b22"> </td>
|
||||
<td>ForestGreen</td>
|
||||
<td>34 139 34 </td>
|
||||
<td>#228B22</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#6b8e23"> </td>
|
||||
<td>OliveDrab</td>
|
||||
<td>107 142 35 </td>
|
||||
<td>#6B8E23</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#bdb76b"> </td>
|
||||
<td>DarkKhaki</td>
|
||||
<td>189 183 107 </td>
|
||||
<td>#BDB76B</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#eee8aa"> </td>
|
||||
<td>PaleGoldenrod</td>
|
||||
<td>238 232 170 </td>
|
||||
<td>#EEE8AA</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#fafad2"> </td>
|
||||
<td>LtGoldenrodYello</td>
|
||||
<td>250 250 210 </td>
|
||||
<td>#FAFAD2</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ffffe0"> </td>
|
||||
<td>LightYellow</td>
|
||||
<td>255 255 224 </td>
|
||||
<td>#FFFFE0</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ffff00"> </td>
|
||||
<td>Yellow</td>
|
||||
<td>255 255 0 </td>
|
||||
<td>#FFFF00</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ffd700"> </td>
|
||||
<td>Gold </td>
|
||||
<td>255 215 0 </td>
|
||||
<td>#FFD700</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#eedd82"> </td>
|
||||
<td>LightGoldenrod</td>
|
||||
<td>238 221 130 </td>
|
||||
<td>#EEDD82</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#daa520"> </td>
|
||||
<td>goldenrod</td>
|
||||
<td>218 165 32 </td>
|
||||
<td>#DAA520</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#b8860b"> </td>
|
||||
<td>DarkGoldenrod</td>
|
||||
<td>184 134 11 </td>
|
||||
<td>#B8860B</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#bc8f8f"> </td>
|
||||
<td>RosyBrown</td>
|
||||
<td>188 143 143 </td>
|
||||
<td>#BC8F8F</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#cd5c5c"> </td>
|
||||
<td>IndianRed</td>
|
||||
<td>205 92 92 </td>
|
||||
<td>#CD5C5C</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8b4513"> </td>
|
||||
<td>SaddleBrown</td>
|
||||
<td>139 69 19 </td>
|
||||
<td>#8B4513</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#a0522d"> </td>
|
||||
<td>Sienna</td>
|
||||
<td>160 82 45 </td>
|
||||
<td>#A0522D</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#cd853f"> </td>
|
||||
<td>Peru </td>
|
||||
<td>205 133 63 </td>
|
||||
<td>#CD853F</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#deb887"> </td>
|
||||
<td>Burlywood</td>
|
||||
<td>222 184 135 </td>
|
||||
<td>#DEB887</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#f5f5dc"> </td>
|
||||
<td>Beige</td>
|
||||
<td>245 245 220 </td>
|
||||
<td>#F5F5DC</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#f5deb3"> </td>
|
||||
<td>Wheat</td>
|
||||
<td>245 222 179 </td>
|
||||
<td>#F5DEB3</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#f4a460"> </td>
|
||||
<td>SandyBrown</td>
|
||||
<td>244 164 96 </td>
|
||||
<td>#F4A460</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#d2b48c"> </td>
|
||||
<td>Tan </td>
|
||||
<td>210 180 140 </td>
|
||||
<td>#D2B48C</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#d2691e"> </td>
|
||||
<td>Chocolate</td>
|
||||
<td>210 105 30 </td>
|
||||
<td>#D2691E</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#b22222"> </td>
|
||||
<td>Firebrick</td>
|
||||
<td>178 34 34 </td>
|
||||
<td>#B22222</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#a52a2a"> </td>
|
||||
<td>Brown</td>
|
||||
<td>165 42 42 </td>
|
||||
<td>#A52A2A</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#e9967a"> </td>
|
||||
<td>DarkSalmon</td>
|
||||
<td>233 150 122 </td>
|
||||
<td>#E9967A</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#fa8072"> </td>
|
||||
<td>Salmon</td>
|
||||
<td>250 128 114 </td>
|
||||
<td>#FA8072</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ffa07a"> </td>
|
||||
<td>LightSalmon</td>
|
||||
<td>255 160 122 </td>
|
||||
<td>#FFA07A</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ffa500"> </td>
|
||||
<td>Orange</td>
|
||||
<td>255 165 0 </td>
|
||||
<td>#FFA500</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ff8c00"> </td>
|
||||
<td>DarkOrange</td>
|
||||
<td>255 140 0 </td>
|
||||
<td>#FF8C00</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ff7f50"> </td>
|
||||
<td>Coral</td>
|
||||
<td>255 127 80 </td>
|
||||
<td>#FF7F50</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#f08080"> </td>
|
||||
<td>LightCoral</td>
|
||||
<td>240 128 128 </td>
|
||||
<td>#F08080</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ff6347"> </td>
|
||||
<td>Tomato</td>
|
||||
<td>255 99 71 </td>
|
||||
<td>#FF6347</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ff4500"> </td>
|
||||
<td>OrangeRed</td>
|
||||
<td>255 69 0 </td>
|
||||
<td>#FF4500</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ff0000"> </td>
|
||||
<td>Red </td>
|
||||
<td>255 0 0 </td>
|
||||
<td>#FF0000</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ff69b4"> </td>
|
||||
<td>HotPink</td>
|
||||
<td>255 105 180 </td>
|
||||
<td>#FF69B4</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ff1493"> </td>
|
||||
<td>DeepPink</td>
|
||||
<td>255 20 147 </td>
|
||||
<td>#FF1493</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ffc0cb"> </td>
|
||||
<td>Pink </td>
|
||||
<td>255 192 203 </td>
|
||||
<td>#FFC0CB</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ffb6c1"> </td>
|
||||
<td>LightPink</td>
|
||||
<td>255 182 193 </td>
|
||||
<td>#FFB6C1</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#db7093"> </td>
|
||||
<td>PaleVioletRed</td>
|
||||
<td>219 112 147 </td>
|
||||
<td>#DB7093</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#b03060"> </td>
|
||||
<td>Maroon</td>
|
||||
<td>176 48 96 </td>
|
||||
<td>#B03060</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#c71585"> </td>
|
||||
<td>MediumVioletRed</td>
|
||||
<td>199 21 133 </td>
|
||||
<td>#C71585</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#d02090"> </td>
|
||||
<td>VioletRed</td>
|
||||
<td>208 32 144 </td>
|
||||
<td>#D02090</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ff00ff"> </td>
|
||||
<td>Magenta</td>
|
||||
<td>255 0 255 </td>
|
||||
<td>#FF00FF</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ee82ee"> </td>
|
||||
<td>Violet</td>
|
||||
<td>238 130 238 </td>
|
||||
<td>#EE82EE</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#dda0dd"> </td>
|
||||
<td>Plum </td>
|
||||
<td>221 160 221 </td>
|
||||
<td>#DDA0DD</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#da70d6"> </td>
|
||||
<td>Orchid</td>
|
||||
<td>218 112 214 </td>
|
||||
<td>#DA70D6</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ba55d3"> </td>
|
||||
<td>MediumOrchid</td>
|
||||
<td>186 85 211 </td>
|
||||
<td>#BA55D3</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#9932cc"> </td>
|
||||
<td>DarkOrchid</td>
|
||||
<td>153 50 204 </td>
|
||||
<td>#9932CC</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#9400d3"> </td>
|
||||
<td>DarkViolet</td>
|
||||
<td>148 0 211 </td>
|
||||
<td>#9400D3</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8a2be2"> </td>
|
||||
<td>BlueViolet</td>
|
||||
<td>138 43 226 </td>
|
||||
<td>#8A2BE2</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#a020f0"> </td>
|
||||
<td>Purple</td>
|
||||
<td>160 32 240 </td>
|
||||
<td>#A020F0</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#9370db"> </td>
|
||||
<td>MediumPurple</td>
|
||||
<td>147 112 219 </td>
|
||||
<td>#9370DB</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#d8bfd8"> </td>
|
||||
<td>Thistle</td>
|
||||
<td>216 191 216 </td>
|
||||
<td>#D8BFD8</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#fffafa"> </td>
|
||||
<td>Snow1</td>
|
||||
<td>255 250 250 </td>
|
||||
<td>#FFFAFA</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#eee9e9"> </td>
|
||||
<td>Snow2</td>
|
||||
<td>238 233 233 </td>
|
||||
<td>#EEE9E9</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#cdc9c9"> </td>
|
||||
<td>Snow3</td>
|
||||
<td>205 201 201 </td>
|
||||
<td>#CDC9C9</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8b8989"> </td>
|
||||
<td>Snow4</td>
|
||||
<td>139 137 137 </td>
|
||||
<td>#8B8989</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#fff5ee"> </td>
|
||||
<td>Seashell1</td>
|
||||
<td>255 245 238 </td>
|
||||
<td>#FFF5EE</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#eee5de"> </td>
|
||||
<td>Seashell2</td>
|
||||
<td>238 229 222 </td>
|
||||
<td>#EEE5DE</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#cdc5bf"> </td>
|
||||
<td>Seashell3</td>
|
||||
<td>205 197 191 </td>
|
||||
<td>#CDC5BF</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8b8682"> </td>
|
||||
<td>Seashell4</td>
|
||||
<td>139 134 130 </td>
|
||||
<td>#8B8682</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ffefdb"> </td>
|
||||
<td>AntiqueWhite1</td>
|
||||
<td>255 239 219 </td>
|
||||
<td>#FFEFDB</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#eedfcc"> </td>
|
||||
<td>AntiqueWhite2</td>
|
||||
<td>238 223 204 </td>
|
||||
<td>#EEDFCC</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#cdc0b0"> </td>
|
||||
<td>AntiqueWhite3</td>
|
||||
<td>205 192 176 </td>
|
||||
<td>#CDC0B0</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8b8378"> </td>
|
||||
<td>AntiqueWhite4</td>
|
||||
<td>139 131 120 </td>
|
||||
<td>#8B8378</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ffe4c4"> </td>
|
||||
<td>Bisque1</td>
|
||||
<td>255 228 196 </td>
|
||||
<td>#FFE4C4</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#eed5b7"> </td>
|
||||
<td>Bisque2</td>
|
||||
<td>238 213 183 </td>
|
||||
<td>#EED5B7</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#cdb79e"> </td>
|
||||
<td>Bisque3</td>
|
||||
<td>205 183 158 </td>
|
||||
<td>#CDB79E</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8b7d6b"> </td>
|
||||
<td>Bisque4</td>
|
||||
<td>139 125 107 </td>
|
||||
<td>#8B7D6B</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ffdab9"> </td>
|
||||
<td>PeachPuff1</td>
|
||||
<td>255 218 185 </td>
|
||||
<td>#FFDAB9</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#eecbad"> </td>
|
||||
<td>PeachPuff2</td>
|
||||
<td>238 203 173 </td>
|
||||
<td>#EECBAD</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#cdaf95"> </td>
|
||||
<td>PeachPuff3</td>
|
||||
<td>205 175 149 </td>
|
||||
<td>#CDAF95</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8b7765"> </td>
|
||||
<td>PeachPuff4</td>
|
||||
<td>139 119 101 </td>
|
||||
<td>#8B7765</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ffdead"> </td>
|
||||
<td>NavajoWhite1</td>
|
||||
<td>255 222 173 </td>
|
||||
<td>#FFDEAD</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#eecfa1"> </td>
|
||||
<td>NavajoWhite2</td>
|
||||
<td>238 207 161 </td>
|
||||
<td>#EECFA1</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#cdb38b"> </td>
|
||||
<td>NavajoWhite3</td>
|
||||
<td>205 179 139 </td>
|
||||
<td>#CDB38B</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8b795e"> </td>
|
||||
<td>NavajoWhite4</td>
|
||||
<td>139 121 94 </td>
|
||||
<td>#8B795E</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#fffacd"> </td>
|
||||
<td>LemonChiffon1</td>
|
||||
<td>255 250 205 </td>
|
||||
<td>#FFFACD</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#eee9bf"> </td>
|
||||
<td>LemonChiffon2</td>
|
||||
<td>238 233 191 </td>
|
||||
<td>#EEE9BF</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#cdc9a5"> </td>
|
||||
<td>LemonChiffon3</td>
|
||||
<td>205 201 165 </td>
|
||||
<td>#CDC9A5</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8b8970"> </td>
|
||||
<td>LemonChiffon4</td>
|
||||
<td>139 137 112 </td>
|
||||
<td>#8B8970</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#fff8dc"> </td>
|
||||
<td>Cornsilk1</td>
|
||||
<td>255 248 220 </td>
|
||||
<td>#FFF8DC</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#eee8cd"> </td>
|
||||
<td>Cornsilk2</td>
|
||||
<td>238 232 205 </td>
|
||||
<td>#EEE8CD</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#cdc8b1"> </td>
|
||||
<td>Cornsilk3</td>
|
||||
<td>205 200 177 </td>
|
||||
<td>#CDC8B1</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8b8878"> </td>
|
||||
<td>Cornsilk4</td>
|
||||
<td>139 136 120 </td>
|
||||
<td>#8B8878</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#fffff0"> </td>
|
||||
<td>Ivory1</td>
|
||||
<td>255 255 240 </td>
|
||||
<td>#FFFFF0</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#eeeee0"> </td>
|
||||
<td>Ivory2</td>
|
||||
<td>238 238 224 </td>
|
||||
<td>#EEEEE0</td></tr>
|
||||
<tr>
|
||||
|
||||
<td bgcolor="#cdcdc1"> </td>
|
||||
<td>Ivory3</td>
|
||||
<td>205 205 193 </td>
|
||||
<td>#CDCDC1</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8b8b83"> </td>
|
||||
<td>Ivory4</td>
|
||||
<td>139 139 131 </td>
|
||||
<td>#8B8B83</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#f0fff0"> </td>
|
||||
<td>Honeydew1</td>
|
||||
<td>240 255 240 </td>
|
||||
<td>#F0FFF0</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#e0eee0"> </td>
|
||||
<td>Honeydew2</td>
|
||||
<td>224 238 224 </td>
|
||||
<td>#E0EEE0</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#c1cdc1"> </td>
|
||||
<td>Honeydew3</td>
|
||||
<td>193 205 193 </td>
|
||||
<td>#C1CDC1</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#838b83"> </td>
|
||||
<td>Honeydew4</td>
|
||||
<td>131 139 131 </td>
|
||||
<td>#838B83</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#fff0f5"> </td>
|
||||
<td>LavenderBlush1</td>
|
||||
<td>255 240 245 </td>
|
||||
<td>#FFF0F5</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#eee0e5"> </td>
|
||||
<td>LavenderBlush2</td>
|
||||
<td>238 224 229 </td>
|
||||
<td>#EEE0E5</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#cdc1c5"> </td>
|
||||
<td>LavenderBlush3</td>
|
||||
<td>205 193 197 </td>
|
||||
<td>#CDC1C5</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8b8386"> </td>
|
||||
<td>LavenderBlush4</td>
|
||||
<td>139 131 134 </td>
|
||||
<td>#8B8386</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ffe4e1"> </td>
|
||||
<td>MistyRose1</td>
|
||||
<td>255 228 225 </td>
|
||||
<td>#FFE4E1</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#eed5d2"> </td>
|
||||
<td>MistyRose2</td>
|
||||
<td>238 213 210 </td>
|
||||
<td>#EED5D2</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#cdb7b5"> </td>
|
||||
<td>MistyRose3</td>
|
||||
<td>205 183 181 </td>
|
||||
<td>#CDB7B5</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8b7d7b"> </td>
|
||||
<td>MistyRose4</td>
|
||||
<td>139 125 123 </td>
|
||||
<td>#8B7D7B</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#f0ffff"> </td>
|
||||
<td>Azure1</td>
|
||||
<td>240 255 255 </td>
|
||||
<td>#F0FFFF</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#e0eeee"> </td>
|
||||
<td>Azure2</td>
|
||||
<td>224 238 238 </td>
|
||||
<td>#E0EEEE</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#c1cdcd"> </td>
|
||||
<td>Azure3</td>
|
||||
<td>193 205 205 </td>
|
||||
<td>#C1CDCD</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#838b8b"> </td>
|
||||
<td>Azure4</td>
|
||||
<td>131 139 139 </td>
|
||||
<td>#838B8B</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#836fff"> </td>
|
||||
<td>SlateBlue1</td>
|
||||
<td>131 111 255 </td>
|
||||
<td>#836FFF</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#7a67ee"> </td>
|
||||
<td>SlateBlue2</td>
|
||||
<td>122 103 238 </td>
|
||||
<td>#7A67EE</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#6959cd"> </td>
|
||||
<td>SlateBlue3</td>
|
||||
<td>105 89 205 </td>
|
||||
<td>#6959CD</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#473c8b"> </td>
|
||||
<td>SlateBlue4</td>
|
||||
<td>71 60 139 </td>
|
||||
<td>#473C8B</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#4876ff"> </td>
|
||||
<td>RoyalBlue1</td>
|
||||
<td>72 118 255 </td>
|
||||
<td>#4876FF</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#436eee"> </td>
|
||||
<td>RoyalBlue2</td>
|
||||
<td>67 110 238 </td>
|
||||
<td>#436EEE</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#3a5fcd"> </td>
|
||||
<td>RoyalBlue3</td>
|
||||
<td>58 95 205 </td>
|
||||
<td>#3A5FCD</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#27408b"> </td>
|
||||
<td>RoyalBlue4</td>
|
||||
<td>39 64 139 </td>
|
||||
<td>#27408B</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#0000ff"> </td>
|
||||
<td>Blue1</td>
|
||||
<td>0 0 255 </td>
|
||||
<td>#0000FF</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#0000ee"> </td>
|
||||
<td>Blue2</td>
|
||||
<td>0 0 238 </td>
|
||||
<td>#0000EE</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#0000cd"> </td>
|
||||
<td>Blue3</td>
|
||||
<td>0 0 205 </td>
|
||||
<td>#0000CD</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#00008b"> </td>
|
||||
<td>Blue4</td>
|
||||
<td>0 0 139 </td>
|
||||
<td>#00008B</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#1e90ff"> </td>
|
||||
<td>DodgerBlue1</td>
|
||||
<td>30 144 255 </td>
|
||||
<td>#1E90FF</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#1c86ee"> </td>
|
||||
<td>DodgerBlue2</td>
|
||||
<td>28 134 238 </td>
|
||||
<td>#1C86EE</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#1874cd"> </td>
|
||||
<td>DodgerBlue3</td>
|
||||
<td>24 116 205 </td>
|
||||
<td>#1874CD</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#104e8b"> </td>
|
||||
<td>DodgerBlue4</td>
|
||||
<td>16 78 139 </td>
|
||||
<td>#104E8B</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#63b8ff"> </td>
|
||||
<td>SteelBlue1</td>
|
||||
<td>99 184 255 </td>
|
||||
<td>#63B8FF</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#5cacee"> </td>
|
||||
<td>SteelBlue2</td>
|
||||
<td>92 172 238 </td>
|
||||
<td>#5CACEE</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#4f94cd"> </td>
|
||||
<td>SteelBlue3</td>
|
||||
<td>79 148 205 </td>
|
||||
<td>#4F94CD</td></tr>
|
||||
<tr>
|
||||
|
||||
<td bgcolor="#36648b"> </td>
|
||||
<td>SteelBlue4</td>
|
||||
<td>54 100 139 </td>
|
||||
<td>#36648B</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#00bfff"> </td>
|
||||
<td>DeepSkyBlue1</td>
|
||||
<td>0 191 255 </td>
|
||||
<td>#00BFFF</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#00b2ee"> </td>
|
||||
<td>DeepSkyBlue2</td>
|
||||
<td>0 178 238 </td>
|
||||
<td>#00B2EE</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#009acd"> </td>
|
||||
<td>DeepSkyBlue3</td>
|
||||
<td>0 154 205 </td>
|
||||
<td>#009ACD</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#00688b"> </td>
|
||||
<td>DeepSkyBlue4</td>
|
||||
<td>0 104 139 </td>
|
||||
<td>#00688B</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#87ceff"> </td>
|
||||
<td>SkyBlue1</td>
|
||||
<td>135 206 255 </td>
|
||||
<td>#87CEFF</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#7ec0ee"> </td>
|
||||
<td>SkyBlue2</td>
|
||||
<td>126 192 238 </td>
|
||||
<td>#7EC0EE</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#6ca6cd"> </td>
|
||||
<td>SkyBlue3</td>
|
||||
<td>108 166 205 </td>
|
||||
<td>#6CA6CD</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#4a708b"> </td>
|
||||
<td>SkyBlue4</td>
|
||||
<td>74 112 139 </td>
|
||||
<td>#4A708B</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#b0e2ff"> </td>
|
||||
<td>LightSkyBlue1</td>
|
||||
<td>176 226 255 </td>
|
||||
<td>#B0E2FF</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#a4d3ee"> </td>
|
||||
<td>LightSkyBlue2</td>
|
||||
<td>164 211 238 </td>
|
||||
<td>#A4D3EE</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8db6cd"> </td>
|
||||
<td>LightSkyBlue3</td>
|
||||
<td>141 182 205 </td>
|
||||
<td>#8DB6CD</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#607b8b"> </td>
|
||||
<td>LightSkyBlue4</td>
|
||||
<td>96 123 139 </td>
|
||||
<td>#607B8B</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#c6e2ff"> </td>
|
||||
<td>SlateGray1</td>
|
||||
<td>198 226 255 </td>
|
||||
<td>#C6E2FF</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#b9d3ee"> </td>
|
||||
<td>SlateGray2</td>
|
||||
<td>185 211 238 </td>
|
||||
<td>#B9D3EE</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#9fb6cd"> </td>
|
||||
<td>SlateGray3</td>
|
||||
<td>159 182 205 </td>
|
||||
<td>#9FB6CD</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#6c7b8b"> </td>
|
||||
<td>SlateGray4</td>
|
||||
<td>108 123 139 </td>
|
||||
<td>#6C7B8B</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#cae1ff"> </td>
|
||||
<td>LightSteelBlue1</td>
|
||||
<td>202 225 255 </td>
|
||||
<td>#CAE1FF</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#bcd2ee"> </td>
|
||||
<td>LightSteelBlue2</td>
|
||||
<td>188 210 238 </td>
|
||||
<td>#BCD2EE</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#a2b5cd"> </td>
|
||||
<td>LightSteelBlue3</td>
|
||||
<td>162 181 205 </td>
|
||||
<td>#A2B5CD</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#6e7b8b"> </td>
|
||||
<td>LightSteelBlue4</td>
|
||||
<td>110 123 139 </td>
|
||||
<td>#6E7B8B</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#bfefff"> </td>
|
||||
<td>LightBlue1</td>
|
||||
<td>191 239 255 </td>
|
||||
<td>#BFEFFF</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#b2dfee"> </td>
|
||||
<td>LightBlue2</td>
|
||||
<td>178 223 238 </td>
|
||||
<td>#B2DFEE</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#9ac0cd"> </td>
|
||||
<td>LightBlue3</td>
|
||||
<td>154 192 205 </td>
|
||||
<td>#9AC0CD</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#68838b"> </td>
|
||||
<td>LightBlue4</td>
|
||||
<td>104 131 139 </td>
|
||||
<td>#68838B</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#e0ffff"> </td>
|
||||
<td>LightCyan1</td>
|
||||
<td>224 255 255 </td>
|
||||
<td>#E0FFFF</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#d1eeee"> </td>
|
||||
<td>LightCyan2</td>
|
||||
<td>209 238 238 </td>
|
||||
<td>#D1EEEE</td></tr>
|
||||
<tr>
|
||||
<td height="27" bgcolor="#b4cdcd"> </td>
|
||||
<td>LightCyan3</td>
|
||||
<td>180 205 205 </td>
|
||||
<td>#B4CDCD</td></tr>
|
||||
<tr>
|
||||
<td height="27" bgcolor="#7a8b8b"> </td>
|
||||
<td>LightCyan4</td>
|
||||
<td>122 139 139 </td>
|
||||
<td>#7A8B8B</td></tr>
|
||||
</tbody></table>
|
||||
</div>
|
||||
<div class="col-12 col-md-6">
|
||||
<table class="table table-hover table-bordered">
|
||||
<thead>
|
||||
<th align="center">实色效果</th>
|
||||
<th align="center">英文名称 </th>
|
||||
<th align="center">R.G.B </th>
|
||||
<th align="center">16色</th></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td bgcolor="#bbffff"> </td>
|
||||
<td>PaleTurquoise1</td>
|
||||
<td>187 255 255 </td>
|
||||
<td>#BBFFFF</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#aeeeee"> </td>
|
||||
<td>PaleTurquoise2</td>
|
||||
<td>174 238 238 </td>
|
||||
<td>#AEEEEE</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#96cdcd"> </td>
|
||||
<td>PaleTurquoise3</td>
|
||||
<td>150 205 205 </td>
|
||||
<td>#96CDCD</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#668b8b"> </td>
|
||||
<td>PaleTurquoise4</td>
|
||||
<td>102 139 139 </td>
|
||||
<td>#668B8B</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#98f5ff"> </td>
|
||||
<td>CadetBlue1</td>
|
||||
<td>152 245 255 </td>
|
||||
<td>#98F5FF</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8ee5ee"> </td>
|
||||
<td>CadetBlue2</td>
|
||||
<td>142 229 238 </td>
|
||||
<td>#8EE5EE</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#7ac5cd"> </td>
|
||||
<td>CadetBlue3</td>
|
||||
<td>122 197 205 </td>
|
||||
<td>#7AC5CD</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#53868b"> </td>
|
||||
<td>CadetBlue4</td>
|
||||
<td>83 134 139 </td>
|
||||
<td>#53868B</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#00f5ff"> </td>
|
||||
<td>Turquoise1</td>
|
||||
<td>0 245 255 </td>
|
||||
<td>#00F5FF</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#00e5ee"> </td>
|
||||
<td>Turquoise2</td>
|
||||
<td>0 229 238 </td>
|
||||
<td>#00E5EE</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#00c5cd"> </td>
|
||||
<td>Turquoise3</td>
|
||||
<td>0 197 205 </td>
|
||||
<td>#00C5CD</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#00868b"> </td>
|
||||
<td>Turquoise4</td>
|
||||
<td>0 134 139 </td>
|
||||
<td>#00868B</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#00ffff"> </td>
|
||||
<td>Cyan1</td>
|
||||
<td>0 255 255 </td>
|
||||
<td>#00FFFF</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#00eeee"> </td>
|
||||
<td>Cyan2</td>
|
||||
<td>0 238 238 </td>
|
||||
<td>#00EEEE</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#00cdcd"> </td>
|
||||
<td>Cyan3</td>
|
||||
<td>0 205 205 </td>
|
||||
<td>#00CDCD</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#008b8b"> </td>
|
||||
<td>Cyan4</td>
|
||||
<td>0 139 139 </td>
|
||||
<td>#008B8B</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#97ffff"> </td>
|
||||
<td>DarkSlateGray1</td>
|
||||
<td>151 255 255 </td>
|
||||
<td>#97FFFF</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8deeee"> </td>
|
||||
<td>DarkSlateGray2</td>
|
||||
<td>141 238 238 </td>
|
||||
<td>#8DEEEE</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#79cdcd"> </td>
|
||||
<td>DarkSlateGray3</td>
|
||||
<td>121 205 205 </td>
|
||||
<td>#79CDCD</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#528b8b"> </td>
|
||||
<td>DarkSlateGray4</td>
|
||||
<td>82 139 139 </td>
|
||||
<td>#528B8B</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#7fffd4"> </td>
|
||||
<td>Aquamarine1</td>
|
||||
<td>127 255 212 </td>
|
||||
<td>#7FFFD4</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#76eec6"> </td>
|
||||
<td>Aquamarine2</td>
|
||||
<td>118 238 198 </td>
|
||||
<td>#76EEC6</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#66cdaa"> </td>
|
||||
<td>Aquamarine3</td>
|
||||
<td>102 205 170 </td>
|
||||
<td>#66CDAA</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#458b74"> </td>
|
||||
<td>Aquamarine4</td>
|
||||
<td>69 139 116 </td>
|
||||
<td>#458B74</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#c1ffc1"> </td>
|
||||
<td>DarkSeaGreen1</td>
|
||||
<td>193 255 193 </td>
|
||||
<td>#C1FFC1</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#b4eeb4"> </td>
|
||||
<td>DarkSeaGreen2</td>
|
||||
<td>180 238 180 </td>
|
||||
<td>#B4EEB4</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#9bcd9b"> </td>
|
||||
<td>DarkSeaGreen3</td>
|
||||
<td>155 205 155 </td>
|
||||
<td>#9BCD9B</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#698b69"> </td>
|
||||
<td>DarkSeaGreen4</td>
|
||||
<td>105 139 105 </td>
|
||||
<td>#698B69</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#54ff9f"> </td>
|
||||
<td>SeaGreen1</td>
|
||||
<td>84 255 159 </td>
|
||||
<td>#54FF9F</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#4eee94"> </td>
|
||||
<td>SeaGreen2</td>
|
||||
<td>78 238 148 </td>
|
||||
<td>#4EEE94</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#43cd80"> </td>
|
||||
<td>SeaGreen3</td>
|
||||
<td>67 205 128 </td>
|
||||
<td>#43CD80</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#2e8b57"> </td>
|
||||
<td>SeaGreen4</td>
|
||||
<td>46 139 87 </td>
|
||||
<td>#2E8B57</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#9aff9a"> </td>
|
||||
<td>PaleGreen1</td>
|
||||
<td>154 255 154 </td>
|
||||
<td>#9AFF9A</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#90ee90"> </td>
|
||||
<td>PaleGreen2</td>
|
||||
<td>144 238 144 </td>
|
||||
<td>#90EE90</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#7ccd7c"> </td>
|
||||
<td>PaleGreen3</td>
|
||||
<td>124 205 124 </td>
|
||||
<td>#7CCD7C</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#548b54"> </td>
|
||||
<td>PaleGreen4</td>
|
||||
<td>84 139 84 </td>
|
||||
<td>#548B54</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#00ff7f"> </td>
|
||||
<td>SpringGreen1</td>
|
||||
<td>0 255 127 </td>
|
||||
<td>#00FF7F</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#00ee76"> </td>
|
||||
<td>SpringGreen2</td>
|
||||
<td>0 238 118 </td>
|
||||
<td>#00EE76</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#00cd66"> </td>
|
||||
<td>SpringGreen3</td>
|
||||
<td>0 205 102 </td>
|
||||
<td>#00CD66</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#008b45"> </td>
|
||||
<td>SpringGreen4</td>
|
||||
<td>0 139 69 </td>
|
||||
<td>#008B45</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#00ff00"> </td>
|
||||
<td>Green1</td>
|
||||
<td>0 255 0 </td>
|
||||
<td>#00FF00</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#00ee00"> </td>
|
||||
<td>Green2</td>
|
||||
<td>0 238 0 </td>
|
||||
<td>#00EE00</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#00cd00"> </td>
|
||||
<td>Green3</td>
|
||||
<td>0 205 0 </td>
|
||||
<td>#00CD00</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#008b00"> </td>
|
||||
<td>Green4</td>
|
||||
<td>0 139 0 </td>
|
||||
<td>#008B00</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#7fff00"> </td>
|
||||
<td>Chartreuse1</td>
|
||||
<td>127 255 0 </td>
|
||||
<td>#7FFF00</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#76ee00"> </td>
|
||||
<td>Chartreuse2</td>
|
||||
<td>118 238 0 </td>
|
||||
<td>#76EE00</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#66cd00"> </td>
|
||||
<td>Chartreuse3</td>
|
||||
<td>102 205 0 </td>
|
||||
<td>#66CD00</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#458b00"> </td>
|
||||
<td>Chartreuse4</td>
|
||||
<td>69 139 0 </td>
|
||||
<td>#458B00</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#c0ff3e"> </td>
|
||||
<td>OliveDrab1</td>
|
||||
<td>192 255 62 </td>
|
||||
<td>#C0FF3E</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#b3ee3a"> </td>
|
||||
<td>OliveDrab2</td>
|
||||
<td>179 238 58 </td>
|
||||
<td>#B3EE3A</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#9acd32"> </td>
|
||||
<td>OliveDrab3</td>
|
||||
<td>154 205 50 </td>
|
||||
<td>#9ACD32</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#698b22"> </td>
|
||||
<td>OliveDrab4</td>
|
||||
<td>105 139 34 </td>
|
||||
<td>#698B22</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#caff70"> </td>
|
||||
<td>DarkOliveGreen1</td>
|
||||
<td>202 255 112 </td>
|
||||
<td>#CAFF70</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#bcee68"> </td>
|
||||
<td>DarkOliveGreen2</td>
|
||||
<td>188 238 104 </td>
|
||||
<td>#BCEE68</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#a2cd5a"> </td>
|
||||
<td>DarkOliveGreen3</td>
|
||||
<td>162 205 90 </td>
|
||||
<td>#A2CD5A</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#6e8b3d"> </td>
|
||||
<td>DarkOliveGreen4</td>
|
||||
<td>110 139 61 </td>
|
||||
<td>#6E8B3D</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#fff68f"> </td>
|
||||
<td>Khaki1</td>
|
||||
<td>255 246 143 </td>
|
||||
<td>#FFF68F</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#eee685"> </td>
|
||||
<td>Khaki2</td>
|
||||
<td>238 230 133 </td>
|
||||
<td>#EEE685</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#cdc673"> </td>
|
||||
<td>Khaki3</td>
|
||||
<td>205 198 115 </td>
|
||||
<td>#CDC673</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8b864e"> </td>
|
||||
<td>Khaki4</td>
|
||||
<td>139 134 78 </td>
|
||||
<td>#8B864E</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ffec8b"> </td>
|
||||
<td>LightGoldenrod1</td>
|
||||
<td>255 236 139 </td>
|
||||
<td>#FFEC8B</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#eedc82"> </td>
|
||||
<td>LightGoldenrod2</td>
|
||||
<td>238 220 130 </td>
|
||||
<td>#EEDC82</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#cdbe70"> </td>
|
||||
<td>LightGoldenrod3</td>
|
||||
<td>205 190 112 </td>
|
||||
<td>#CDBE70</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8b814c"> </td>
|
||||
<td>LightGoldenrod4</td>
|
||||
<td>139 129 76 </td>
|
||||
<td>#8B814C</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ffffe0"> </td>
|
||||
<td>LightYellow1</td>
|
||||
<td>255 255 224 </td>
|
||||
<td>#FFFFE0</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#eeeed1"> </td>
|
||||
<td>LightYellow2</td>
|
||||
<td>238 238 209 </td>
|
||||
<td>#EEEED1</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#cdcdb4"> </td>
|
||||
<td>LightYellow3</td>
|
||||
<td>205 205 180 </td>
|
||||
<td>#CDCDB4</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8b8b7a"> </td>
|
||||
<td>LightYellow4</td>
|
||||
<td>139 139 122 </td>
|
||||
<td>#8B8B7A</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ffff00"> </td>
|
||||
<td>Yellow1</td>
|
||||
<td>255 255 0 </td>
|
||||
<td>#FFFF00</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#eeee00"> </td>
|
||||
<td>Yellow2</td>
|
||||
<td>238 238 0 </td>
|
||||
<td>#EEEE00</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#cdcd00"> </td>
|
||||
<td>Yellow3</td>
|
||||
<td>205 205 0 </td>
|
||||
<td>#CDCD00</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8b8b00"> </td>
|
||||
<td>Yellow4</td>
|
||||
<td>139 139 0 </td>
|
||||
<td>#8B8B00</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ffd700"> </td>
|
||||
<td>Gold1</td>
|
||||
<td>255 215 0 </td>
|
||||
<td>#FFD700</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#eec900"> </td>
|
||||
<td>Gold2</td>
|
||||
<td>238 201 0 </td>
|
||||
<td>#EEC900</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#cdad00"> </td>
|
||||
<td>Gold3</td>
|
||||
<td>205 173 0 </td>
|
||||
<td>#CDAD00</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8b7500"> </td>
|
||||
<td>Gold4</td>
|
||||
<td>139 117 0 </td>
|
||||
<td>#8B7500</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ffc125"> </td>
|
||||
<td>Goldenrod1</td>
|
||||
<td>255 193 37 </td>
|
||||
<td>#FFC125</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#eeb422"> </td>
|
||||
<td>Goldenrod2</td>
|
||||
<td>238 180 34 </td>
|
||||
<td>#EEB422</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#cd9b1d"> </td>
|
||||
<td>Goldenrod3</td>
|
||||
<td>205 155 29 </td>
|
||||
<td>#CD9B1D</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8b6914"> </td>
|
||||
<td>Goldenrod4</td>
|
||||
<td>139 105 20 </td>
|
||||
<td>#8B6914</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ffb90f"> </td>
|
||||
<td>DarkGoldenrod1</td>
|
||||
<td>255 185 15 </td>
|
||||
<td>#FFB90F</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#eead0e"> </td>
|
||||
<td>DarkGoldenrod2</td>
|
||||
<td>238 173 14 </td>
|
||||
<td>#EEAD0E</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#cd950c"> </td>
|
||||
<td>DarkGoldenrod3</td>
|
||||
<td>205 149 12 </td>
|
||||
<td>#CD950C</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8b658b"> </td>
|
||||
<td>DarkGoldenrod4</td>
|
||||
<td>139 101 8 </td>
|
||||
<td>#8B658B</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ffc1c1"> </td>
|
||||
<td>RosyBrown1</td>
|
||||
<td>255 193 193 </td>
|
||||
<td>#FFC1C1</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#eeb4b4"> </td>
|
||||
<td>RosyBrown2</td>
|
||||
<td>238 180 180 </td>
|
||||
<td>#EEB4B4</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#cd9b9b"> </td>
|
||||
<td>RosyBrown3</td>
|
||||
<td>205 155 155 </td>
|
||||
<td>#CD9B9B</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8b6969"> </td>
|
||||
<td>RosyBrown4</td>
|
||||
<td>139 105 105 </td>
|
||||
<td>#8B6969</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ff6a6a"> </td>
|
||||
<td>IndianRed1</td>
|
||||
<td>255 106 106 </td>
|
||||
<td>#FF6A6A</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ee6363"> </td>
|
||||
<td>IndianRed2</td>
|
||||
<td>238 99 99 </td>
|
||||
<td>#EE6363</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#cd5555"> </td>
|
||||
<td>IndianRed3</td>
|
||||
<td>205 85 85 </td>
|
||||
<td>#CD5555</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8b3a3a"> </td>
|
||||
<td>IndianRed4</td>
|
||||
<td>139 58 58 </td>
|
||||
<td>#8B3A3A</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ff8247"> </td>
|
||||
<td>Sienna1</td>
|
||||
<td>255 130 71 </td>
|
||||
<td>#FF8247</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ee7942"> </td>
|
||||
<td>Sienna2</td>
|
||||
<td>238 121 66 </td>
|
||||
<td>#EE7942</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#cd6839"> </td>
|
||||
<td>Sienna3</td>
|
||||
<td>205 104 57 </td>
|
||||
<td>#CD6839</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8b4726"> </td>
|
||||
<td>Sienna4</td>
|
||||
<td>139 71 38 </td>
|
||||
<td>#8B4726</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ffd39b"> </td>
|
||||
<td>Burlywood1</td>
|
||||
<td>255 211 155 </td>
|
||||
<td>#FFD39B</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#eec591"> </td>
|
||||
<td>Burlywood2</td>
|
||||
<td>238 197 145 </td>
|
||||
<td>#EEC591</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#cdaa7d"> </td>
|
||||
<td>Burlywood3</td>
|
||||
<td>205 170 125 </td>
|
||||
<td>#CDAA7D</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8b7355"> </td>
|
||||
<td>Burlywood4</td>
|
||||
<td>139 115 85 </td>
|
||||
<td>#8B7355</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ffe7ba"> </td>
|
||||
<td>Wheat1</td>
|
||||
<td>255 231 186 </td>
|
||||
<td>#FFE7BA</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#eed8ae"> </td>
|
||||
<td>Wheat2</td>
|
||||
<td>238 216 174 </td>
|
||||
<td>#EED8AE</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#cdba96"> </td>
|
||||
<td>Wheat3</td>
|
||||
<td>205 186 150 </td>
|
||||
<td>#CDBA96</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8b7e66"> </td>
|
||||
<td>Wheat4</td>
|
||||
<td>139 126 102 </td>
|
||||
<td>#8B7E66</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ffa54f"> </td>
|
||||
<td>Tan1 </td>
|
||||
<td>255 165 79 </td>
|
||||
<td>#FFA54F</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ee9a49"> </td>
|
||||
<td>Tan2 </td>
|
||||
<td>238 154 73 </td>
|
||||
<td>#EE9A49</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#cd853f"> </td>
|
||||
<td>Tan3 </td>
|
||||
<td>205 133 63 </td>
|
||||
<td>#CD853F</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8b5a2b"> </td>
|
||||
<td>Tan4 </td>
|
||||
<td>139 90 43 </td>
|
||||
<td>#8B5A2B</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ff7f24"> </td>
|
||||
<td>Chocolate1</td>
|
||||
<td>255 127 36 </td>
|
||||
<td>#FF7F24</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ee7621"> </td>
|
||||
<td>Chocolate2</td>
|
||||
<td>238 118 33 </td>
|
||||
<td>#EE7621</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#cd661d"> </td>
|
||||
<td>Chocolate3</td>
|
||||
<td>205 102 29 </td>
|
||||
<td>#CD661D</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8b4513"> </td>
|
||||
<td>Chocolate4</td>
|
||||
<td>139 69 19 </td>
|
||||
<td>#8B4513</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ff3030"> </td>
|
||||
<td>Firebrick1</td>
|
||||
<td>255 48 48 </td>
|
||||
<td>#FF3030</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ee2c2c"> </td>
|
||||
<td>Firebrick2</td>
|
||||
<td>238 44 44 </td>
|
||||
<td>#EE2C2C</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#cd2626"> </td>
|
||||
<td>Firebrick3</td>
|
||||
<td>205 38 38 </td>
|
||||
<td>#CD2626</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8b1a1a"> </td>
|
||||
<td>Firebrick4</td>
|
||||
<td>139 26 26 </td>
|
||||
<td>#8B1A1A</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ff4040"> </td>
|
||||
<td>Brown1</td>
|
||||
<td>255 64 64 </td>
|
||||
<td>#FF4040</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ee3b3b"> </td>
|
||||
<td>Brown2</td>
|
||||
<td>238 59 59 </td>
|
||||
<td>#EE3B3B</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#cd3333"> </td>
|
||||
<td>Brown3</td>
|
||||
<td>205 51 51 </td>
|
||||
<td>#CD3333</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8b2323"> </td>
|
||||
<td>Brown4</td>
|
||||
<td>139 35 35 </td>
|
||||
<td>#8B2323</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ff8c69"> </td>
|
||||
<td>Salmon1</td>
|
||||
<td>255 140 105 </td>
|
||||
<td>#FF8C69</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ee8262"> </td>
|
||||
<td>Salmon2</td>
|
||||
<td>238 130 98 </td>
|
||||
<td>#EE8262</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#cd7054"> </td>
|
||||
<td>Salmon3</td>
|
||||
<td>205 112 84 </td>
|
||||
<td>#CD7054</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8b4c39"> </td>
|
||||
<td>Salmon4</td>
|
||||
<td>139 76 57 </td>
|
||||
<td>#8B4C39</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ffa07a"> </td>
|
||||
<td>LightSalmon1</td>
|
||||
<td>255 160 122 </td>
|
||||
<td>#FFA07A</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ee9572"> </td>
|
||||
<td>LightSalmon2</td>
|
||||
<td>238 149 114 </td>
|
||||
<td>#EE9572</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#cd8162"> </td>
|
||||
<td>LightSalmon3</td>
|
||||
<td>205 129 98 </td>
|
||||
<td>#CD8162</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8b5742"> </td>
|
||||
<td>LightSalmon4</td>
|
||||
<td>139 87 66 </td>
|
||||
<td>#8B5742</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ffa500"> </td>
|
||||
<td>Orange1</td>
|
||||
<td>255 165 0 </td>
|
||||
<td>#FFA500</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ee9a00"> </td>
|
||||
<td>Orange2</td>
|
||||
<td>238 154 0 </td>
|
||||
<td>#EE9A00</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#cd8500"> </td>
|
||||
<td>Orange3</td>
|
||||
<td>205 133 0 </td>
|
||||
<td>#CD8500</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8b5a00"> </td>
|
||||
<td>Orange4</td>
|
||||
<td>139 90 0 </td>
|
||||
<td>#8B5A00</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ff7f00"> </td>
|
||||
<td>DarkOrange1</td>
|
||||
<td>255 127 0 </td>
|
||||
<td>#FF7F00</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ee7600"> </td>
|
||||
<td>DarkOrange2</td>
|
||||
<td>238 118 0 </td>
|
||||
<td>#EE7600</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#cd6600"> </td>
|
||||
<td>DarkOrange3</td>
|
||||
<td>205 102 0 </td>
|
||||
<td>#CD6600</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8b4500"> </td>
|
||||
<td>DarkOrange4</td>
|
||||
<td>139 69 0 </td>
|
||||
<td>#8B4500</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ff7256"> </td>
|
||||
<td>Coral1</td>
|
||||
<td>255 114 86 </td>
|
||||
<td>#FF7256</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ee6a50"> </td>
|
||||
<td>Coral2</td>
|
||||
<td>238 106 80 </td>
|
||||
<td>#EE6A50</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#cd5b45"> </td>
|
||||
<td>Coral3</td>
|
||||
<td>205 91 69 </td>
|
||||
<td>#CD5B45</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8b3e2f"> </td>
|
||||
<td>Coral4</td>
|
||||
<td>139 62 47 </td>
|
||||
<td>#8B3E2F</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ff6347"> </td>
|
||||
<td>Tomato1</td>
|
||||
<td>255 99 71 </td>
|
||||
<td>#FF6347</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ee5c42"> </td>
|
||||
<td>Tomato2</td>
|
||||
<td>238 92 66 </td>
|
||||
<td>#EE5C42</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#cd4f39"> </td>
|
||||
<td>Tomato3</td>
|
||||
<td>205 79 57 </td>
|
||||
<td>#CD4F39</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8b3626"> </td>
|
||||
<td>Tomato4</td>
|
||||
<td>139 54 38 </td>
|
||||
<td>#8B3626</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ff4500"> </td>
|
||||
<td>OrangeRed1</td>
|
||||
<td>255 69 0 </td>
|
||||
<td>#FF4500</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ee4000"> </td>
|
||||
<td>OrangeRed2</td>
|
||||
<td>238 64 0 </td>
|
||||
<td>#EE4000</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#cd3700"> </td>
|
||||
<td>OrangeRed3</td>
|
||||
<td>205 55 0 </td>
|
||||
<td>#CD3700</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8b2500"> </td>
|
||||
<td>OrangeRed4</td>
|
||||
<td>139 37 0 </td>
|
||||
<td>#8B2500</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ff0000"> </td>
|
||||
<td>Red1 </td>
|
||||
<td>255 0 0 </td>
|
||||
<td>#FF0000</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ee0000"> </td>
|
||||
<td>Red2 </td>
|
||||
<td>238 0 0 </td>
|
||||
<td>#EE0000</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#cd0000"> </td>
|
||||
<td>Red3 </td>
|
||||
<td>205 0 0 </td>
|
||||
<td>#CD0000</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8b0000"> </td>
|
||||
<td>Red4 </td>
|
||||
<td>139 0 0 </td>
|
||||
<td>#8B0000</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ff1493"> </td>
|
||||
<td>DeepPink1</td>
|
||||
<td>255 20 147 </td>
|
||||
<td>#FF1493</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ee1289"> </td>
|
||||
<td>DeepPink2</td>
|
||||
<td>238 18 137 </td>
|
||||
<td>#EE1289</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#cd1076"> </td>
|
||||
<td>DeepPink3</td>
|
||||
<td>205 16 118 </td>
|
||||
<td>#CD1076</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8b0a50"> </td>
|
||||
<td>DeepPink4</td>
|
||||
<td>139 10 80 </td>
|
||||
<td>#8B0A50</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ff6eb4"> </td>
|
||||
<td>HotPink1</td>
|
||||
<td>255 110 180 </td>
|
||||
<td>#FF6EB4</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ee6aa7"> </td>
|
||||
<td>HotPink2</td>
|
||||
<td>238 106 167 </td>
|
||||
<td>#EE6AA7</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#cd6090"> </td>
|
||||
<td>HotPink3</td>
|
||||
<td>205 96 144 </td>
|
||||
<td>#CD6090</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8b3a62"> </td>
|
||||
<td>HotPink4</td>
|
||||
<td>139 58 98 </td>
|
||||
<td>#8B3A62</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ffb5c5"> </td>
|
||||
<td>Pink1</td>
|
||||
<td>255 181 197 </td>
|
||||
<td>#FFB5C5</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#eea9b8"> </td>
|
||||
<td>Pink2</td>
|
||||
<td>238 169 184 </td>
|
||||
<td>#EEA9B8</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#cd919e"> </td>
|
||||
<td>Pink3</td>
|
||||
<td>205 145 158 </td>
|
||||
<td>#CD919E</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8b636c"> </td>
|
||||
<td>Pink4</td>
|
||||
<td>139 99 108 </td>
|
||||
<td>#8B636C</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ffaeb9"> </td>
|
||||
<td>LightPink1</td>
|
||||
<td>255 174 185 </td>
|
||||
<td>#FFAEB9</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#eea2ad"> </td>
|
||||
<td>LightPink2</td>
|
||||
<td>238 162 173 </td>
|
||||
<td>#EEA2AD</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#cd8c95"> </td>
|
||||
<td>LightPink3</td>
|
||||
<td>205 140 149 </td>
|
||||
<td>#CD8C95</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8b5f65"> </td>
|
||||
<td>LightPink4</td>
|
||||
<td>139 95 101 </td>
|
||||
<td>#8B5F65</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ff82ab"> </td>
|
||||
<td>PaleVioletRed1</td>
|
||||
<td>255 130 171 </td>
|
||||
<td>#FF82AB</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ee799f"> </td>
|
||||
<td>PaleVioletRed2</td>
|
||||
<td>238 121 159 </td>
|
||||
<td>#EE799F</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#cd6889"> </td>
|
||||
<td>PaleVioletRed3</td>
|
||||
<td>205 104 137 </td>
|
||||
<td>#CD6889</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8b475d"> </td>
|
||||
<td>PaleVioletRed4</td>
|
||||
<td>139 71 93 </td>
|
||||
<td>#8B475D</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ff34b3"> </td>
|
||||
<td>Maroon1</td>
|
||||
<td>255 52 179 </td>
|
||||
<td>#FF34B3</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ee30a7"> </td>
|
||||
<td>Maroon2</td>
|
||||
<td>238 48 167 </td>
|
||||
<td>#EE30A7</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#cd2990"> </td>
|
||||
<td>Maroon3</td>
|
||||
<td>205 41 144 </td>
|
||||
<td>#CD2990</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8b1c62"> </td>
|
||||
<td>Maroon4</td>
|
||||
<td>139 28 98 </td>
|
||||
<td>#8B1C62</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ff3e96"> </td>
|
||||
<td>VioletRed1</td>
|
||||
<td>255 62 150 </td>
|
||||
<td>#FF3E96</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ee3a8c"> </td>
|
||||
<td>VioletRed2</td>
|
||||
<td>238 58 140 </td>
|
||||
<td>#EE3A8C</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#cd3278"> </td>
|
||||
<td>VioletRed3</td>
|
||||
<td>205 50 120 </td>
|
||||
<td>#CD3278</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8b2252"> </td>
|
||||
<td>VioletRed4</td>
|
||||
<td>139 34 82 </td>
|
||||
<td>#8B2252</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ff00ff"> </td>
|
||||
<td>Magenta1</td>
|
||||
<td>255 0 255 </td>
|
||||
<td>#FF00FF</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ee00ee"> </td>
|
||||
<td>Magenta2</td>
|
||||
<td>238 0 238 </td>
|
||||
<td>#EE00EE</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#cd00cd"> </td>
|
||||
<td>Magenta3</td>
|
||||
<td>205 0 205 </td>
|
||||
<td>#CD00CD</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8b008b"> </td>
|
||||
<td>Magenta4</td>
|
||||
<td>139 0 139 </td>
|
||||
<td>#8B008B</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ff83fa"> </td>
|
||||
<td>Orchid1</td>
|
||||
<td>255 131 250 </td>
|
||||
<td>#FF83FA</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ee7ae9"> </td>
|
||||
<td>Orchid2</td>
|
||||
<td>238 122 233 </td>
|
||||
<td>#EE7AE9</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#cd69c9"> </td>
|
||||
<td>Orchid3</td>
|
||||
<td>205 105 201 </td>
|
||||
<td>#CD69C9</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8b4789"> </td>
|
||||
<td>Orchid4</td>
|
||||
<td>139 71 137 </td>
|
||||
<td>#8B4789</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ffbbff"> </td>
|
||||
<td>Plum1</td>
|
||||
<td>255 187 255 </td>
|
||||
<td>#FFBBFF</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#eeaeee"> </td>
|
||||
<td>Plum2</td>
|
||||
<td>238 174 238 </td>
|
||||
<td>#EEAEEE</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#cd96cd"> </td>
|
||||
<td>Plum3</td>
|
||||
<td>205 150 205 </td>
|
||||
<td>#CD96CD</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8b668b"> </td>
|
||||
<td>Plum4</td>
|
||||
<td>139 102 139 </td>
|
||||
<td>#8B668B</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#e066ff"> </td>
|
||||
<td>MediumOrchid1</td>
|
||||
<td>224 102 255 </td>
|
||||
<td>#E066FF</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#d15fee"> </td>
|
||||
<td>MediumOrchid2</td>
|
||||
<td>209 95 238 </td>
|
||||
<td>#D15FEE</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#b452cd"> </td>
|
||||
<td>MediumOrchid3</td>
|
||||
<td>180 82 205 </td>
|
||||
<td>#B452CD</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#7a378b"> </td>
|
||||
<td>MediumOrchid4</td>
|
||||
<td>122 55 139 </td>
|
||||
<td>#7A378B</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#bf3eff"> </td>
|
||||
<td>DarkOrchid1</td>
|
||||
<td>191 62 255 </td>
|
||||
<td>#BF3EFF</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#b23aee"> </td>
|
||||
<td>DarkOrchid2</td>
|
||||
<td>178 58 238 </td>
|
||||
<td>#B23AEE</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#9a32cd"> </td>
|
||||
<td>DarkOrchid3</td>
|
||||
<td>154 50 205 </td>
|
||||
<td>#9A32CD</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#68228b"> </td>
|
||||
<td>DarkOrchid4</td>
|
||||
<td>104 34 139 </td>
|
||||
<td>#68228B</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#9b30ff"> </td>
|
||||
<td>Purple1</td>
|
||||
<td>155 48 255 </td>
|
||||
<td>#9B30FF</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#912cee"> </td>
|
||||
<td>Purple2</td>
|
||||
<td>145 44 238 </td>
|
||||
<td>#912CEE</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#7d26cd"> </td>
|
||||
<td>Purple3</td>
|
||||
<td>125 38 205 </td>
|
||||
<td>#7D26CD</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#551a8b"> </td>
|
||||
<td>Purple4</td>
|
||||
<td>85 26 139 </td>
|
||||
<td>#551A8B</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ab82ff"> </td>
|
||||
<td>MediumPurple1</td>
|
||||
<td>171 130 255 </td>
|
||||
<td>#AB82FF</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#9f79ee"> </td>
|
||||
<td>MediumPurple2</td>
|
||||
<td>159 121 238 </td>
|
||||
<td>#9F79EE</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8968cd"> </td>
|
||||
<td>MediumPurple3</td>
|
||||
<td>137 104 205 </td>
|
||||
<td>#8968CD</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#5d478b"> </td>
|
||||
<td>MediumPurple4</td>
|
||||
<td>93 71 139 </td>
|
||||
<td>#5D478B</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#ffe1ff"> </td>
|
||||
<td>Thistle1</td>
|
||||
<td>255 225 255 </td>
|
||||
<td>#FFE1FF</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#eed2ee"> </td>
|
||||
<td>Thistle2</td>
|
||||
<td>238 210 238 </td>
|
||||
<td>#EED2EE</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#cdb5cd"> </td>
|
||||
<td>Thistle3</td>
|
||||
<td>205 181 205 </td>
|
||||
<td>#CDB5CD</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8b7b8b"> </td>
|
||||
<td>Thistle4</td>
|
||||
<td>139 123 139 </td>
|
||||
<td>#8B7B8B</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#1c1c1c"> </td>
|
||||
<td>grey11</td>
|
||||
<td>28 28 28 </td>
|
||||
<td>#1C1C1C</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#363636"> </td>
|
||||
<td>grey21</td>
|
||||
<td>54 54 54 </td>
|
||||
<td>#363636</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#4f4f4f"> </td>
|
||||
<td>grey31</td>
|
||||
<td>79 79 79 </td>
|
||||
<td>#4F4F4F</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#696969"> </td>
|
||||
<td>grey41</td>
|
||||
<td>105 105 105 </td>
|
||||
<td>#696969</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#828282"> </td>
|
||||
<td>grey51</td>
|
||||
<td>130 130 130 </td>
|
||||
<td>#828282</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#9c9c9c"> </td>
|
||||
<td>grey61</td>
|
||||
<td>156 156 156 </td>
|
||||
<td>#9C9C9C</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#b5b5b5"> </td>
|
||||
<td>grey71</td>
|
||||
<td>181 181 181 </td>
|
||||
<td>#B5B5B5</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#cfcfcf"> </td>
|
||||
<td>gray81</td>
|
||||
<td>207 207 207 </td>
|
||||
<td>#CFCFCF</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#e8e8e8"> </td>
|
||||
<td>gray91</td>
|
||||
<td>232 232 232 </td>
|
||||
<td>#E8E8E8</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#a9a9a9"> </td>
|
||||
<td>DarkGrey</td>
|
||||
<td>169 169 169 </td>
|
||||
<td>#A9A9A9</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#00008b"> </td>
|
||||
<td>DarkBlue</td>
|
||||
<td>0 0 139 </td>
|
||||
<td>#00008B</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#008b8b"> </td>
|
||||
<td>DarkCyan</td>
|
||||
<td>0 139 139 </td>
|
||||
<td>#008B8B</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8b008b"> </td>
|
||||
<td>DarkMagenta</td>
|
||||
<td>139 0 139 </td>
|
||||
<td>#8B008B</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#8b0000"> </td>
|
||||
<td>DarkRed</td>
|
||||
<td>139 0 0 </td>
|
||||
<td>#8B0000</td></tr>
|
||||
<tr>
|
||||
<td bgcolor="#90ee90"> </td>
|
||||
<td>LightGreen</td>
|
||||
<td>144 238 144 </td>
|
||||
<td>#90EE90</td></tr></tbody></table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/block}
|
||||
{block name="script"}
|
||||
{/block}
|
||||
@@ -0,0 +1,256 @@
|
||||
<?php
|
||||
/**
|
||||
* RSA生成与加密
|
||||
*/
|
||||
|
||||
namespace plugin\dev\rsa;
|
||||
|
||||
use app\Plugin;
|
||||
|
||||
class App extends Plugin
|
||||
{
|
||||
|
||||
/**
|
||||
* 密钥配置
|
||||
* @var array
|
||||
*/
|
||||
public $config = [
|
||||
//指定应该使用多少位来生成私钥 512 1024 2048 4096等
|
||||
"private_key_bits" => 1024,
|
||||
//选择在创建CSR时应该使用哪些扩展。可选值有 OPENSSL_KEYTYPE_DSA, OPENSSL_KEYTYPE_DH, OPENSSL_KEYTYPE_RSA 或 OPENSSL_KEYTYPE_EC. 默认值是 OPENSSL_KEYTYPE_RSA.
|
||||
"private_key_type" => OPENSSL_KEYTYPE_RSA,
|
||||
];
|
||||
private $passPhrase;
|
||||
private $rsaPrivateKey;
|
||||
private $rsaPublicKey;
|
||||
private $data;
|
||||
private $sign;
|
||||
private $origin;
|
||||
private $coded;
|
||||
private $opensslPadding;
|
||||
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->passPhrase = request()->param("pass_phrase");
|
||||
if($this->passPhrase == '') $this->passPhrase = null;
|
||||
$this->rsaPrivateKey = request()->param("private_key");
|
||||
$this->rsaPublicKey = request()->param("public_key");
|
||||
$this->config["private_key_bits"] = request()->param("private_key_bits");
|
||||
$this->data = request()->param("data");
|
||||
$this->origin = request()->param("origin");
|
||||
$this->coded = request()->param("coded");
|
||||
$this->sign = request()->param("sign");
|
||||
$this->opensslPadding = request()->param("openssl_padding");
|
||||
}
|
||||
|
||||
public function index()
|
||||
{
|
||||
return $this->view();
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成密钥对
|
||||
*/
|
||||
public function generate()
|
||||
{
|
||||
// 生成公钥私钥资源
|
||||
$res = openssl_pkey_new($this->config);
|
||||
$privateKey = '';
|
||||
// 导出私钥
|
||||
openssl_pkey_export($res, $privateKey, $this->passPhrase, $this->config);
|
||||
// 导出公钥
|
||||
$pubKey = openssl_pkey_get_details($res);
|
||||
openssl_pkey_free($res);
|
||||
|
||||
return msg('ok', 'success', [
|
||||
"public_key" => $pubKey["key"],
|
||||
"private_key" => $privateKey,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 私钥加密
|
||||
* @param string $data
|
||||
* @return null|string
|
||||
*/
|
||||
public function private_encrypt()
|
||||
{
|
||||
if (!is_string($this->origin)) {
|
||||
return msg('error', '加密失败');
|
||||
}
|
||||
try {
|
||||
if (openssl_private_encrypt($this->origin, $encrypted, $this->getRsaPrivateKey(), $this->opensslPadding)) {
|
||||
return msg('ok', 'success', base64_encode($encrypted));
|
||||
}
|
||||
return msg('error', '加密失败');
|
||||
} catch (\Exception $e) {
|
||||
return msg('error', $e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 公钥加密
|
||||
* @param string $data
|
||||
* @return null|string
|
||||
*/
|
||||
public function public_encrypt()
|
||||
{
|
||||
if (!is_string($this->origin)) {
|
||||
return msg('error', '加密失败');
|
||||
}
|
||||
$dataLength = mb_strlen($this->origin);
|
||||
$offet = 0;
|
||||
$length = 128;
|
||||
$i = 0;
|
||||
$string = '';
|
||||
try {
|
||||
while ($dataLength - $offet > 0) {
|
||||
if ($dataLength - $offet > $length) {
|
||||
$str = mb_substr($this->origin, $offet, $length);
|
||||
} else {
|
||||
$str = mb_substr($this->origin, $offet, $dataLength - $offet);
|
||||
}
|
||||
$encrypted = '';
|
||||
openssl_public_encrypt($str, $encrypted, $this->rsaPublicKey, $this->opensslPadding);
|
||||
$string .= $encrypted;
|
||||
$i++;
|
||||
$offet = $i * $length;
|
||||
}
|
||||
|
||||
if ($string) {
|
||||
return msg('ok', 'success', base64_encode($string));
|
||||
}
|
||||
return msg('error', '加密失败');
|
||||
} catch (\Exception $e) {
|
||||
return msg('error', $e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 私钥解密
|
||||
* @param string $encrypted
|
||||
* @return null
|
||||
*/
|
||||
public function private_decrypt()
|
||||
{
|
||||
if (!is_string($this->coded)) {
|
||||
return msg('error', '解密失败');
|
||||
}
|
||||
try {
|
||||
if (openssl_private_decrypt(base64_decode($this->coded), $decrypted, $this->getRsaPrivateKey(), $this->opensslPadding)) {
|
||||
return msg('ok', 'success', $decrypted);
|
||||
}
|
||||
return msg('error', '解密失败');
|
||||
} catch (\Exception $e) {
|
||||
return msg('error', $e->getMessage());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 公钥解密
|
||||
* @param string $encrypted
|
||||
* @return null
|
||||
*/
|
||||
public function public_decrypt()
|
||||
{
|
||||
if (!is_string($this->coded)) {
|
||||
return msg('error', '解密失败');
|
||||
}
|
||||
|
||||
try {
|
||||
if (openssl_public_decrypt(base64_decode($this->coded), $decrypted, $this->rsaPublicKey, $this->opensslPadding)) {
|
||||
return msg('ok', 'success', $decrypted);
|
||||
}
|
||||
return msg('error', '解密失败');
|
||||
} catch (\Exception $e) {
|
||||
return msg('error', $e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成签名
|
||||
*
|
||||
* @param string 签名材料
|
||||
* @param string 签名编码(base64/hex/bin)
|
||||
* @return string 签名值
|
||||
*/
|
||||
public function sign()
|
||||
{
|
||||
try {
|
||||
if (openssl_sign($this->data, $ret, $this->getRsaPrivateKey())) {
|
||||
$ret = base64_encode($ret);
|
||||
return msg('ok', 'success', $ret);
|
||||
}
|
||||
return msg('error', '签名失败');
|
||||
} catch (\Exception $e) {
|
||||
return msg('error', $e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 验证签名
|
||||
*
|
||||
* @param string 签名材料
|
||||
* @param string 签名值
|
||||
* @param string 签名编码(base64/hex/bin)
|
||||
* @return \think\response\Json
|
||||
*/
|
||||
public function verify()
|
||||
{
|
||||
try {
|
||||
$ret = false;
|
||||
$sign = base64_decode($this->sign);
|
||||
if ($sign !== false) {
|
||||
if (openssl_verify($this->data, $sign, $this->rsaPublicKey) === 1) {
|
||||
$ret = true;
|
||||
}
|
||||
}
|
||||
if ($ret) {
|
||||
return msg('ok', '验签成功,签名正确', $ret);
|
||||
}
|
||||
return msg('error', '验签失败,签名不正确');
|
||||
} catch (\Exception $e) {
|
||||
return msg('error', $e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public function check()
|
||||
{
|
||||
try {
|
||||
openssl_sign('cccyun', $ret, $this->getRsaPrivateKey());
|
||||
if (openssl_verify('cccyun', $ret, $this->rsaPublicKey) === 1) {
|
||||
return msg('ok', '验证成功,公私钥匹配');
|
||||
}
|
||||
return msg('error', '公私钥不匹配');
|
||||
} catch (\Exception $e) {
|
||||
return msg('error', $e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public function output()
|
||||
{
|
||||
try {
|
||||
$openssl_pkey_get_details = openssl_pkey_get_details($this->getRsaPrivateKey());
|
||||
if ($openssl_pkey_get_details && !empty($openssl_pkey_get_details['key'])) {
|
||||
return msg('ok', '导出成功', $openssl_pkey_get_details['key']);
|
||||
}
|
||||
return msg('error', '导出失败,私钥不正确');
|
||||
} catch (\Exception $e) {
|
||||
return msg('error', $e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array|mixed|null
|
||||
*/
|
||||
public function getRsaPrivateKey()
|
||||
{
|
||||
$privateKey = openssl_pkey_get_private($this->rsaPrivateKey, $this->passPhrase);
|
||||
if ($privateKey === false) {
|
||||
throw new \Exception('私钥不正确或密码错误');
|
||||
}
|
||||
return $privateKey;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,388 @@
|
||||
{extend name="common/plugin_layout" /}
|
||||
{block name="title"}{$plugin.title} - {:config_get('title')}{/block}
|
||||
{block name="main"}
|
||||
<div class="container-xl" id="app">
|
||||
<div class="col-sm-12 col-md-10 col-xl-8 center-block">
|
||||
<div class="card card-preview">
|
||||
<div class="card-inner mt-3">
|
||||
<div class="nya-title nk-ibx-action-item progress-rating">
|
||||
<span class="nk-menu-text font-weight-bold">RSA公私钥生成、验证、加密和解密</span>
|
||||
</div>
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="nav-item"><a class="nav-link" @click="show=0" :class="{'active':show===0}" href="javascript:">RSA公私钥生成</a></li>
|
||||
<li class="nav-item"><a class="nav-link" @click="show=1" :class="{'active':show===1}" href="javascript:">RSA加密解密</a></li>
|
||||
<li class="nav-item"><a class="nav-link" @click="show=2" :class="{'active':show===2}" href="javascript:">RSA签名验签</a></li>
|
||||
<li class="nav-item"><a class="nav-link" @click="show=3" :class="{'active':show===3}" href="javascript:">RSA公私钥对验证</a></li>
|
||||
<li class="nav-item"><a class="nav-link" @click="show=4" :class="{'active':show===4}" href="javascript:">RSA公钥导出</a></li>
|
||||
</ul>
|
||||
<div class="tab-content">
|
||||
<div class="tab-pane" id="tabItem1" :class="{'active':show===0}">
|
||||
<div class="form-group">
|
||||
<label class="form-label">密钥长度</label>
|
||||
<select class="form-control" v-model="generate_from.private_key_bits">
|
||||
<option v-for="v in [512,1024,2048,4096]" :value="v">{{v}} bit</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="form-label">私钥密码</label>
|
||||
<div class="form-control-wrap">
|
||||
<input type="text" v-model="mutipart_from.pass_phrase" placeholder="此项可留空" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<button class="btn btn-dim btn-outline-secondary btn-block card-link mb-3" @click="generate">
|
||||
生成
|
||||
</button>
|
||||
<div class="d-flex flex-wrap">
|
||||
<div class="form-group flex-fill mr-2">
|
||||
<label class="form-label">RSA公钥</label>
|
||||
<div class="form-control-wrap">
|
||||
<textarea class="form-control" rows="8" v-model="mutipart_from.public_key"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group flex-fill">
|
||||
<label class="form-label">RSA私钥</label>
|
||||
<div class="form-control-wrap">
|
||||
<textarea class="form-control" rows="8" v-model="mutipart_from.private_key"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tab-pane" id="tabItem1" :class="{'active':show===1}">
|
||||
<div class="form-group">
|
||||
<label class="form-label">填充标志</label>
|
||||
<select class="form-control" v-model="crypto_from.openssl_padding">
|
||||
<option v-for="v,index in openssl_padding" :value="index+1">{{v}}</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="form-label">加密/解密方式</label>
|
||||
<select class="form-control" v-model="crypto_from.type">
|
||||
<option :value="0">使用公钥加密,使用私钥解密</option>
|
||||
<option :value="1">使用私钥加密,使用公钥解密</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="form-label">私钥密码</label>
|
||||
<div class="form-control-wrap">
|
||||
<input type="text" v-model="mutipart_from.pass_phrase" placeholder="没有密码请留空" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row pt-1 pb-1 mb-3">
|
||||
<div class="col-6">
|
||||
<button class="btn btn-dim btn-outline-secondary btn-block card-link" @click="encrypt">
|
||||
加密
|
||||
</button>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<button class="btn btn-dim btn-outline-secondary btn-block card-link" @click="decrypt">
|
||||
解密
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex flex-wrap">
|
||||
<div class="form-group flex-fill mr-2">
|
||||
<label class="form-label">RSA公钥</label>
|
||||
<div class="form-control-wrap">
|
||||
<textarea class="form-control" rows="8" v-model="mutipart_from.public_key"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group flex-fill">
|
||||
<label class="form-label">RSA私钥</label>
|
||||
<div class="form-control-wrap">
|
||||
<textarea class="form-control" rows="8" v-model="mutipart_from.private_key"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="form-label">原文,未加密的内容</label>
|
||||
<div class="form-control-wrap">
|
||||
<textarea class="form-control" rows="6" v-model="crypto_from.origin"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="form-label">密文,加密后的内容</label>
|
||||
<div class="form-control-wrap">
|
||||
<textarea class="form-control" rows="6" v-model="crypto_from.coded"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tab-pane" id="tabItem1" :class="{'active':show===2}">
|
||||
<div class="form-group">
|
||||
<label class="form-label">签名算法</label>
|
||||
<select class="form-control" v-model="sign_form.openssl_algo">
|
||||
<option v-for="v,index in openssl_algo" :value="index+1">{{v}}</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="form-label">私钥密码</label>
|
||||
<div class="form-control-wrap">
|
||||
<input type="text" v-model="mutipart_from.pass_phrase" placeholder="没有密码请留空" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row pt-1 pb-1 mb-3">
|
||||
<div class="col-6">
|
||||
<button class="btn btn-dim btn-outline-secondary btn-block card-link" @click="sign">
|
||||
签名
|
||||
</button>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<button class="btn btn-dim btn-outline-secondary btn-block card-link" @click="verify">
|
||||
验签
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex flex-wrap">
|
||||
<div class="form-group flex-fill mr-2">
|
||||
<label class="form-label">RSA公钥</label>
|
||||
<div class="form-control-wrap">
|
||||
<textarea class="form-control" rows="8" v-model="mutipart_from.public_key"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group flex-fill">
|
||||
<label class="form-label">RSA私钥</label>
|
||||
<div class="form-control-wrap">
|
||||
<textarea class="form-control" rows="8" v-model="mutipart_from.private_key"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="form-label">待签名,验签原始内容</label>
|
||||
<div class="form-control-wrap">
|
||||
<textarea class="form-control" rows="6" v-model="sign_form.data"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="form-label">签名,已签名内容</label>
|
||||
<div class="form-control-wrap">
|
||||
<textarea class="form-control" rows="3" v-model="sign_form.sign"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tab-pane" id="tabItem1" :class="{'active':show===3}">
|
||||
<div class="form-group">
|
||||
<label class="form-label">私钥密码</label>
|
||||
<div class="form-control-wrap">
|
||||
<input type="text" v-model="mutipart_from.pass_phrase" placeholder="没有密码请留空" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<button class="btn btn-dim btn-outline-secondary btn-block card-link mb-3" @click="check">
|
||||
验证
|
||||
</button>
|
||||
<div class="d-flex flex-wrap">
|
||||
<div class="form-group flex-fill mr-2">
|
||||
<label class="form-label">RSA公钥</label>
|
||||
<div class="form-control-wrap">
|
||||
<textarea class="form-control" rows="8" v-model="mutipart_from.public_key"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group flex-fill">
|
||||
<label class="form-label">RSA私钥</label>
|
||||
<div class="form-control-wrap">
|
||||
<textarea class="form-control" rows="8" v-model="mutipart_from.private_key"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tab-pane" id="tabItem1" :class="{'active':show===4}">
|
||||
<div class="form-group">
|
||||
<label class="form-label">私钥密码</label>
|
||||
<div class="form-control-wrap">
|
||||
<input type="text" v-model="mutipart_from.pass_phrase" placeholder="没有密码请留空" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<button class="btn btn-dim btn-outline-secondary btn-block card-link mb-3" @click="output">
|
||||
导出
|
||||
</button>
|
||||
<div class="d-flex flex-wrap">
|
||||
<div class="form-group flex-fill mr-2">
|
||||
<label class="form-label">RSA公钥</label>
|
||||
<div class="form-control-wrap">
|
||||
<textarea class="form-control" rows="8" v-model="mutipart_from.public_key"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group flex-fill">
|
||||
<label class="form-label">RSA私钥</label>
|
||||
<div class="form-control-wrap">
|
||||
<textarea class="form-control" rows="8" v-model="mutipart_from.private_key"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/block}
|
||||
{block name="script"}
|
||||
<script src="{$cdn_cdnjs}vue/2.6.14/vue.min.js"></script>
|
||||
<script>
|
||||
new Vue({
|
||||
el: '#app',
|
||||
data: {
|
||||
show: parseInt(localStorage.getItem('{$plugin.alias}_show') || 0),
|
||||
openssl_padding: [
|
||||
'OPENSSL_PKCS1_PADDING',
|
||||
'OPENSSL_SSLV23_PADDING',
|
||||
'OPENSSL_NO_PADDING',
|
||||
'OPENSSL_PKCS1_OAEP_PADDING',
|
||||
],
|
||||
openssl_algo: [
|
||||
'OPENSSL_ALGO_SHA1',
|
||||
'OPENSSL_ALGO_MD5',
|
||||
'OPENSSL_ALGO_MD4',
|
||||
'OPENSSL_ALGO_MD2',
|
||||
'OPENSSL_ALGO_DSS1',
|
||||
'OPENSSL_ALGO_SHA224',
|
||||
'OPENSSL_ALGO_SHA256',
|
||||
'OPENSSL_ALGO_SHA384',
|
||||
'OPENSSL_ALGO_SHA512',
|
||||
'OPENSSL_ALGO_RMD160',
|
||||
],
|
||||
mutipart_from: JSON.parse(localStorage.getItem('{$plugin.alias}_mutipart_from')) || {
|
||||
public_key: '',
|
||||
private_key: '',
|
||||
pass_phrase: '',
|
||||
},
|
||||
generate_from: {
|
||||
private_key_bits: 1024,
|
||||
},
|
||||
crypto_from: {
|
||||
openssl_padding: 1,
|
||||
type: 0,
|
||||
origin: '',
|
||||
coded: ''
|
||||
},
|
||||
sign_form: {
|
||||
openssl_algo: 1,
|
||||
data: "",
|
||||
sign: "",
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
show(newVal) {
|
||||
localStorage.setItem('{$plugin.alias}_show', newVal)
|
||||
},
|
||||
mutipart_from: {
|
||||
handler: (newVal) => {
|
||||
localStorage.setItem('{$plugin.alias}_mutipart_from', JSON.stringify(newVal))
|
||||
},
|
||||
deep: true,
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
generate() {
|
||||
var that=this;
|
||||
return httpPost('/api/{$plugin.alias}/generate', {
|
||||
...this.generate_from,
|
||||
pass_phrase: this.mutipart_from.pass_phrase
|
||||
}, function(data){
|
||||
that.mutipart_from.public_key = data.public_key
|
||||
that.mutipart_from.private_key = data.private_key
|
||||
})
|
||||
},
|
||||
encrypt() {
|
||||
var that=this;
|
||||
if (this.mutipart_from.public_key == '' || this.mutipart_from.private_key == ''){
|
||||
layer.alert("RSA公钥和私钥不能为空");return
|
||||
}
|
||||
if (this.crypto_from.origin === "") {
|
||||
layer.alert("原文不得为空")
|
||||
return
|
||||
}
|
||||
let api = '/api/{$plugin.alias}/private_encrypt'
|
||||
if (this.crypto_from.type === 0) {
|
||||
api = '/api/{$plugin.alias}/public_encrypt'
|
||||
}
|
||||
return httpPost(api, {
|
||||
...this.crypto_from,
|
||||
...this.mutipart_from
|
||||
}, function(data){
|
||||
that.crypto_from.coded = data
|
||||
})
|
||||
},
|
||||
decrypt() {
|
||||
var that=this;
|
||||
if (this.mutipart_from.public_key == '' || this.mutipart_from.private_key == ''){
|
||||
layer.alert("RSA公钥和私钥不能为空");return
|
||||
}
|
||||
if (this.crypto_from.coded === "") {
|
||||
layer.alert("密文不得为空")
|
||||
return
|
||||
}
|
||||
let api = '/api/{$plugin.alias}/private_decrypt'
|
||||
if (this.crypto_from.type !== 0) {
|
||||
api = '/api/{$plugin.alias}/public_decrypt'
|
||||
}
|
||||
return httpPost(api, {
|
||||
...this.crypto_from,
|
||||
...this.mutipart_from
|
||||
}, function(data){
|
||||
that.crypto_from.origin = data
|
||||
})
|
||||
},
|
||||
verify() {
|
||||
if (this.mutipart_from.public_key == '' || this.mutipart_from.private_key == ''){
|
||||
layer.alert("RSA公钥和私钥不能为空");return
|
||||
}
|
||||
if (this.sign_form.sign === "") {
|
||||
layer.alert("签名不得为空")
|
||||
return
|
||||
}
|
||||
return httpPost('/api/{$plugin.alias}/verify', {
|
||||
...this.sign_form,
|
||||
...this.mutipart_from
|
||||
}, function(res){
|
||||
if (res.status === "ok") {
|
||||
layer.alert(res.message, {icon:1})
|
||||
}else{
|
||||
layer.alert(res.message, {icon:2})
|
||||
}
|
||||
}, true)
|
||||
},
|
||||
sign() {
|
||||
if (this.mutipart_from.public_key == '' || this.mutipart_from.private_key == ''){
|
||||
layer.alert("RSA公钥和私钥不能为空");return
|
||||
}
|
||||
var that=this;
|
||||
return httpPost('/api/{$plugin.alias}/sign', {
|
||||
...this.sign_form,
|
||||
...this.mutipart_from
|
||||
}, function(data){
|
||||
that.sign_form.sign = data
|
||||
})
|
||||
},
|
||||
check() {
|
||||
if (this.mutipart_from.public_key == '' || this.mutipart_from.private_key == ''){
|
||||
layer.alert("RSA公钥和私钥不能为空");return
|
||||
}
|
||||
return httpPost('/api/{$plugin.alias}/check', {
|
||||
...this.mutipart_from
|
||||
}, function(res){
|
||||
if (res.status === "ok") {
|
||||
layer.alert(res.message, {icon:1})
|
||||
}else{
|
||||
layer.alert(res.message, {icon:2})
|
||||
}
|
||||
}, true)
|
||||
},
|
||||
output() {
|
||||
if (this.mutipart_from.private_key == ''){
|
||||
layer.alert("RSA私钥不能为空");return
|
||||
}
|
||||
var that=this;
|
||||
return httpPost('/api/{$plugin.alias}/output', {
|
||||
...this.mutipart_from
|
||||
}, function(res){
|
||||
if (res.status === "ok") {
|
||||
that.mutipart_from.public_key = res.data
|
||||
layer.alert(res.message, {icon:1})
|
||||
}else{
|
||||
layer.alert(res.message, {icon:2})
|
||||
}
|
||||
}, true)
|
||||
},
|
||||
},
|
||||
})
|
||||
</script>
|
||||
{/block}
|
||||
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
/**
|
||||
* UUID生成器
|
||||
*/
|
||||
|
||||
namespace plugin\dev\uuid;
|
||||
|
||||
use app\Plugin;
|
||||
|
||||
class App extends Plugin
|
||||
{
|
||||
|
||||
public function index()
|
||||
{
|
||||
return $this->view();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,122 @@
|
||||
{extend name="common/plugin_layout" /}
|
||||
{block name="title"}{$plugin.title} - {:config_get('title')}{/block}
|
||||
{block name="main"}
|
||||
<div class="container-xl" id="app">
|
||||
<div class="col-sm-12 col-md-10 col-xl-8 center-block">
|
||||
<div class="card card-preview">
|
||||
<div class="card-inner mt-3">
|
||||
<div class="nya-title nk-ibx-action-item progress-rating">
|
||||
<span class="nk-menu-text font-weight-bold">UUID生成器</span>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="form-label">生成选项:</label>
|
||||
<div class="row">
|
||||
<div class="col-6 col-md-3 my-1">
|
||||
<div class="preview-block">
|
||||
<div class="custom-control custom-switch mr-3">
|
||||
<input type="checkbox" class="custom-control-input" v-model="set.upcase" id="customSwitch1">
|
||||
<label class="custom-control-label" for="customSwitch1">字母大写</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-6 col-md-3 my-1">
|
||||
<div class="preview-block">
|
||||
<div class="custom-control custom-switch mr-3">
|
||||
<input type="checkbox" class="custom-control-input" v-model="set.separator" id="customSwitch2">
|
||||
<label class="custom-control-label" for="customSwitch2">分隔符(-)</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-6 col-md-3 my-1">
|
||||
<div class="preview-block">
|
||||
<div class="custom-control custom-switch mr-3">
|
||||
<input type="checkbox" class="custom-control-input" v-model="set.aggregation" id="customSwitch3">
|
||||
<label class="custom-control-label" for="customSwitch3">需要{}</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-6 col-md-3 my-1">
|
||||
<div class="preview-block">
|
||||
<div class="custom-control custom-switch mr-3">
|
||||
<input type="checkbox" class="custom-control-input" v-model="set.base64" id="customSwitch4">
|
||||
<label class="custom-control-label" for="customSwitch4">转Base64</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="form-label">生成数量:</label>
|
||||
<div class="form-control-wrap">
|
||||
<input type="number" v-model="set.quantity" placeholder="需要生成的数量" min="1" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<button class="btn btn-dim btn-outline-primary btn-block card-link" @click="generate">
|
||||
生成
|
||||
</button>
|
||||
<div class="form-group mt-3">
|
||||
<label class="form-label">结果:</label>
|
||||
<div class="form-control-wrap">
|
||||
<textarea v-model="result" id="output" class="form-control" rows="5"></textarea>
|
||||
</div>
|
||||
<div class="text-center"><button class="btn btn-sm btn-outline-light" @click="copy"><em class="icon ni ni-copy"></em>点此复制</button></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/block}
|
||||
{block name="script"}
|
||||
<script src="{$cdn_cdnjs}vue/2.6.14/vue.min.js"></script>
|
||||
<script>
|
||||
function uuidv4() {
|
||||
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
|
||||
var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
|
||||
return v.toString(16);
|
||||
});
|
||||
}
|
||||
new Vue({
|
||||
el: '#app',
|
||||
data: {
|
||||
set: {
|
||||
upcase: false,
|
||||
separator: true,
|
||||
aggregation: false,
|
||||
base64: false,
|
||||
quantity: 1,
|
||||
},
|
||||
result: '',
|
||||
},
|
||||
methods: {
|
||||
generate() {
|
||||
let arr = [];
|
||||
for (let i = 0; i < this.set.quantity; i++) {
|
||||
var uuid = uuidv4();
|
||||
if (this.set.upcase) {
|
||||
uuid = uuid.toUpperCase()
|
||||
}
|
||||
if (!this.set.separator) {
|
||||
uuid = uuid.replaceAll('-', '')
|
||||
}
|
||||
if (this.set.aggregation) {
|
||||
uuid = '{'+uuid+'}'
|
||||
}
|
||||
if (this.set.base64) {
|
||||
uuid = btoa(encodeURIComponent(uuid).replace(/%([0-9A-F]{2})/g,
|
||||
function toSolidBytes(match, p1) {
|
||||
return String.fromCharCode('0x' + p1);
|
||||
}));
|
||||
}
|
||||
arr.push(uuid)
|
||||
}
|
||||
this.result = arr.join('\n');
|
||||
},
|
||||
copy(){
|
||||
$("#output").select();
|
||||
document.execCommand("Copy");
|
||||
layer.msg('复制成功', {icon:1, time:600})
|
||||
}
|
||||
},
|
||||
})
|
||||
</script>
|
||||
{/block}
|
||||
Reference in New Issue
Block a user