<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Encode / Decode Base64</title> <!-- Bootstrap --> <link href="https://cdn.gh.ink/assembly/bootstrap/4.6.1/css/bootstrap.min.css" rel="stylesheet"> <!-- Favicon --> <link rel="icon" href="https://2-cdn.ianxia.com/images/avatar/common.png" type="image/png"> <script src="https://cdn.gh.ink/js/vue/2.6.14/vue.min.js"></script> </head> <body> <nav class="navbar navbar-expand-lg navbar-dark bg-dark"> <a class="navbar-brand" href="https://tools.ianxia.com"><b>Ian</b>Tools</a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbarSupportedContent"> <ul class="navbar-nav ml-auto"> <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Language </a> <div class="dropdown-menu" aria-labelledby="navbarDropdown"> <a class="dropdown-item" href="zh.html"><b>简体中文</b></a> </div> </li> <li class="nav-item"> <a class="nav-link" href="https://www.ianxia.com">Home</a> </li> <li class="nav-item"> <a class="nav-link" href="https://blog.ianxia.com">Blog (In Chinese)</a> </li> <li class="nav-item"> <a class="nav-link" href="https://demo.ianxia.com">DEMO</a> </li> <li class="nav-item"> <a class="nav-link" href="https://adsb.ianxia.com">ADS-B</a> </li> <li class="nav-item active"> <a class="nav-link" href="../en.html">Tools</a> </li> </ul> </div> </nav> <section> <div class="jumbotron text-center mt-2"> <div class="container"> <div class="row"> <div class="col-12"> <h1>Encode / Decode Base64</h1> </div> </div> </div> </div> </section> <section> <div class="container" id="app"> <div class="text-center"> <ul class="nav nav-tabs" id="myTab" role="tablist"> <li class="nav-item"> <a class="nav-link active" id="text-tab" data-toggle="tab" href="#text" role="tab" aria-controls="text" aria-selected="true"> <h6>Text</h6> </a> </li> </ul> <div class="tab-content border border-top-0" id="myTabContent"> <div class="tab-pane fade show active" id="text" role="tabpanel" aria-labelledby="text-tab"> <br> <div class="row"> <div class="col-md-1"></div> <div class="col-md-10"> <form role="form"> <div> <label><b>Source: </b> </label> <input type="text" class="form-control" v-model="source_text" placeholder="Please enter the content"><br> </div> </form> </div> </div> <div class="row"> <div class="col-md-1"></div> <div class="col-md-5"> <form role="form"> <div> <label><b>Base64: </b> </label> <textarea type="text" class="form-control" v-model="based_text" placeholder="Please enter the content"></textarea><br> </div> </form> </div> <div class="col-md-5"> <form role="form"> <div> <label><b>Base64 URI: </b> </label> <textarea type="text" class="form-control" v-model="based_uri_text" placeholder="Please enter the content"></textarea><br> </div> </form> </div> </div> </div> </div> <div class="text-center"> <hr> <h5>Library used: <a href="https://github.com/dankogai/js-base64">js-base64</a></h5> </div> </div> </div> </section> <hr> <script src="https://cdn.gh.ink/js/base64/3.7.2/base64.min.js"></script> <script> new Vue({ el: '#app', data: { source_text: "Please enter the content", based_text: Base64.encode('Please enter the content'), based_uri_text: Base64.encodeURI('Please enter the content') }, watch: { source_text: function() { this.based_text = Base64.encode(this.source_text); this.based_uri_text = Base64.encodeURI(this.source_text); }, based_text: function() { this.source_text = Base64.decode(this.based_text); this.based_uri_text = Base64.encodeURI(this.source_text); }, based_uri_text: function() { this.source_text = Base64.decode(this.based_uri_text); this.based_text = Base64.encode(this.source_text); } } }) let date = new Date(); </script> <footer class="text-center"> <div class="container"> <div class="row"> <div class="col-12"> <p style="color: #516069"><strong>Copyright © Ian Xia <script>document.write(date.getFullYear().toString());</script> All rights reserved</strong></p> </div> </div> </div> </footer> <!-- jQuery (necessary for Bootstrap's JavaScript plugins) --> <script src="https://cdn.gh.ink/js/jquery/jquery-3.6.0.min.js"></script> <!-- Grey Filter Detector --> <script> $.ajax({ type: "GET", url: "https://open.geh.ink/grey_filter", dataType: "json", success: function(data, textStatus){ for (let i=0;i<data["content"]["accurate_slot"].length;i++) { // Accurate Slot if (Date.now()/1000 >= data["content"]["accurate_slot"][i][0] && Date.now()/1000 <= data["content"]["accurate_slot"][i][1]) { $("html").css({ '-webkit-filter': 'grayscale(100%)', '-moz-filter': 'grayscale(100%)', '-ms-filter': 'grayscale(100%)', '-o-filter': 'grayscale(100%)', 'filter': 'progid:DXImageTransform.Microsoft.BasicImage(grayscale=1)', '_filter': 'none' }); break; } } for (let i=0;i<data["content"]["day_slot"].length;i++) { // Day Slot let begin = new Date( date.getFullYear().toString() + "-" + data["content"]["day_slot"][i][0][0].toString() + "-" + data["content"]["day_slot"][i][0][1].toString() + " " + data["content"]["day_slot"][i][0][2].toString() + ":" + data["content"]["day_slot"][i][0][3].toString() + ":" + data["content"]["day_slot"][i][0][4].toString() ) let end = new Date( date.getFullYear().toString() + "-" + data["content"]["day_slot"][i][1][0].toString() + "-" + data["content"]["day_slot"][i][1][1].toString() + " " + data["content"]["day_slot"][i][1][2].toString() + ":" + data["content"]["day_slot"][i][1][3].toString() + ":" + data["content"]["day_slot"][i][1][4].toString() ) if (Date.now() >= begin.getTime() && Date.now() <= end.getTime()) { $("html").css({ '-webkit-filter': 'grayscale(100%)', '-moz-filter': 'grayscale(100%)', '-ms-filter': 'grayscale(100%)', '-o-filter': 'grayscale(100%)', 'filter': 'progid:DXImageTransform.Microsoft.BasicImage(grayscale=1)', '_filter': 'none' }); break; } } } }); </script> <!-- Include all compiled plugins (below), or include individual files as needed --> <script src="https://cdn.gh.ink/js/popper/1.16.1/popper.min.js"></script> <script src="https://cdn.gh.ink/assembly/bootstrap/4.6.1/js/bootstrap.min.js"></script> </body> </html>