当前位置: 首页 > news >正文

上海网站推广汉狮2022双11各大电商平台销售数据

上海网站推广汉狮,2022双11各大电商平台销售数据,贵州省建设网官方网站,建设部166号令住建部网站荻酷分享:以下是基于HTMLCSSJavaScript实现的AES加密工具网页应用,包含完整的UI界面和加密/解密功能:JS加密工具完整功能:实现AES-256加密/解密功能,包含盐值和IV生成增强安全性 现代化UI:采用渐变色背景、…

荻酷分享:以下是基于HTML+CSS+JavaScript实现的AES加密工具网页应用,包含完整的UI界面和加密/解密功能:

JS加密工具

完整功能:实现AES-256加密/解密功能,包含盐值和IV生成增强安全性
现代化UI:采用渐变色背景、毛玻璃效果卡片和流畅动画
响应式设计:适配不同屏幕尺寸,移动端友好
完整交互:包含密钥显示切换、结果复制、本地保存等功能
安全提示:所有操作在本地完成,不传输数据到服务器
错误处理:完善的错误捕获和用户提示机制

演示效果:

index.html代码如下:


<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>JS加密工具</title><link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet"><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css"><script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.1.1/crypto-js.min.js"></script><style>.gradient-bg {background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);}.card-hover {transition: all 0.3s ease;}.card-hover:hover {transform: translateY(-5px);box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);}.fade-in {animation: fadeIn 0.5s ease-in;}@keyframes fadeIn {from { opacity: 0; }to { opacity: 1; }}</style>
</head>
<body class="min-h-screen gradient-bg text-gray-100"><div class="container mx-auto px-4 py-12"><header class="text-center mb-12"><h1 class="text-4xl font-bold mb-2">JS加密工具</h1><p class="text-xl opacity-90">基于AES算法的安全加密/解密工具</p></header><main class="max-w-4xl mx-auto"><div class="bg-white bg-opacity-10 backdrop-filter backdrop-blur-lg rounded-xl shadow-xl overflow-hidden card-hover"><div class="p-6"><div class="flex flex-col md:flex-row gap-6"><div class="flex-1"><div class="mb-6"><label class="block text-sm font-medium mb-2" for="inputText">输入文本</label><textarea id="inputText" rows="6" class="w-full px-4 py-3 rounded-lg bg-white bg-opacity-20 border border-white border-opacity-30 focus:outline-none focus:ring-2 focus:ring-purple-300 focus:border-transparent placeholder-gray-300" placeholder="请输入要加密/解密的文本..."></textarea></div><div class="mb-6"><label class="block text-sm font-medium mb-2" for="secretKey">密钥</label><div class="relative"><input type="password" id="secretKey" class="w-full px-4 py-3 rounded-lg bg-white bg-opacity-20 border border-white border-opacity-30 focus:outline-none focus:ring-2 focus:ring-purple-300 focus:border-transparent placeholder-gray-300" placeholder="请输入加密密钥"><button id="toggleKey" class="absolute right-3 top-3 text-gray-300 hover:text-white"><i class="far fa-eye"></i></button></div></div><div class="flex flex-wrap gap-4 mb-6"><button id="encryptBtn" class="flex-1 bg-purple-600 hover:bg-purple-700 text-white font-medium py-3 px-6 rounded-lg transition duration-300 flex items-center justify-center gap-2"><i class="fas fa-lock"></i> 加密</button><button id="decryptBtn" class="flex-1 bg-indigo-600 hover:bg-indigo-700 text-white font-medium py-3 px-6 rounded-lg transition duration-300 flex items-center justify-center gap-2"><i class="fas fa-unlock"></i> 解密</button><button id="clearBtn" class="flex-1 bg-gray-600 hover:bg-gray-700 text-white font-medium py-3 px-6 rounded-lg transition duration-300 flex items-center justify-center gap-2"><i class="fas fa-trash-alt"></i> 清空</button></div></div><div class="flex-1"><label class="block text-sm font-medium mb-2" for="outputText">结果</label><textarea id="outputText" rows="6" readonly class="w-full px-4 py-3 rounded-lg bg-white bg-opacity-20 border border-white border-opacity-30 focus:outline-none focus:ring-2 focus:ring-purple-300 focus:border-transparent placeholder-gray-300" placeholder="加密/解密结果将显示在这里..."></textarea><div class="mt-4 flex gap-4"><button id="copyBtn" class="flex-1 bg-blue-600 hover:bg-blue-700 text-white font-medium py-2 px-4 rounded-lg transition duration-300 flex items-center justify-center gap-2"><i class="far fa-copy"></i> 复制结果</button><button id="saveBtn" class="flex-1 bg-green-600 hover:bg-green-700 text-white font-medium py-2 px-4 rounded-lg transition duration-300 flex items-center justify-center gap-2"><i class="far fa-save"></i> 保存到本地</button></div></div></div></div></div><div class="mt-8 bg-white bg-opacity-10 backdrop-filter backdrop-blur-lg rounded-xl shadow-xl overflow-hidden card-hover fade-in"><div class="p-6"><h2 class="text-xl font-semibold mb-4">使用说明</h2><ul class="space-y-2 text-sm opacity-90"><li><i class="fas fa-info-circle mr-2"></i> 使用AES-256算法进行加密/解密</li><li><i class="fas fa-key mr-2"></i> 密钥长度建议至少16个字符</li><li><i class="fas fa-shield-alt mr-2"></i> 所有操作均在浏览器本地完成,数据不会上传到服务器</li><li><i class="fas fa-history mr-2"></i> 加密结果包含随机盐值,每次加密结果不同但都能解密</li><li><i class="fas fa-exclamation-triangle mr-2"></i> 请妥善保管密钥,丢失后将无法解密数据</li></ul></div></div></main><footer class="mt-16 text-center text-sm opacity-75"><p>© 2025 JS加密工具 | 基于CryptoJS实现</p></footer></div><script>document.addEventListener('DOMContentLoaded', function() {// 切换密钥可见性const toggleKey = document.getElementById('toggleKey');const secretKey = document.getElementById('secretKey');toggleKey.addEventListener('click', function() {if (secretKey.type === 'password') {secretKey.type = 'text';toggleKey.innerHTML = '<i class="far fa-eye-slash"></i>';} else {secretKey.type = 'password';toggleKey.innerHTML = '<i class="far fa-eye"></i>';}});// 加密函数function encrypt(text, key) {if (!text || !key) {alert('请输入文本和密钥');return null;}try {const salt = CryptoJS.lib.WordArray.random(128/8);const iv = CryptoJS.lib.WordArray.random(128/8);const key256Bits = CryptoJS.PBKDF2(key, salt, {keySize: 256/32,iterations: 1000});const encrypted = CryptoJS.AES.encrypt(text, key256Bits, { iv: iv,padding: CryptoJS.pad.Pkcs7,mode: CryptoJS.mode.CBC});// 组合盐值、IV和加密数据const result = {salt: salt.toString(),iv: iv.toString(),ciphertext: encrypted.toString()};return JSON.stringify(result);} catch (error) {console.error('加密错误:', error);alert('加密过程中发生错误');return null;}}// 解密函数function decrypt(encryptedData, key) {if (!encryptedData || !key) {alert('请输入加密数据和密钥');return null;}try {const data = JSON.parse(encryptedData);const salt = CryptoJS.enc.Hex.parse(data.salt);const iv = CryptoJS.enc.Hex.parse(data.iv);const key256Bits = CryptoJS.PBKDF2(key, salt, {keySize: 256/32,iterations: 1000});const decrypted = CryptoJS.AES.decrypt(data.ciphertext, key256Bits, { iv: iv,padding: CryptoJS.pad.Pkcs7,mode: CryptoJS.mode.CBC});return decrypted.toString(CryptoJS.enc.Utf8);} catch (error) {console.error('解密错误:', error);alert('解密失败,请检查密钥或数据是否正确');return null;}}// 按钮事件绑定document.getElementById('encryptBtn').addEventListener('click', function() {const inputText = document.getElementById('inputText').value;const key = document.getElementById('secretKey').value;const encrypted = encrypt(inputText, key);if (encrypted) {document.getElementById('outputText').value = encrypted;}});document.getElementById('decryptBtn').addEventListener('click', function() {const inputText = document.getElementById('inputText').value;const key = document.getElementById('secretKey').value;const decrypted = decrypt(inputText, key);if (decrypted) {document.getElementById('outputText').value = decrypted;}});document.getElementById('clearBtn').addEventListener('click', function() {document.getElementById('inputText').value = '';document.getElementById('outputText').value = '';document.getElementById('secretKey').value = '';});document.getElementById('copyBtn').addEventListener('click', function() {const outputText = document.getElementById('outputText');outputText.select();document.execCommand('copy');// 显示复制成功提示const originalText = this.innerHTML;this.innerHTML = '<i class="fas fa-check"></i> 已复制';setTimeout(() => {this.innerHTML = originalText;}, 2000);});document.getElementById('saveBtn').addEventListener('click', function() {const outputText = document.getElementById('outputText').value;if (!outputText) {alert('没有可保存的内容');return;}const blob = new Blob([outputText], { type: 'text/plain' });const url = URL.createObjectURL(blob);const a = document.createElement('a');a.href = url;a.download = 'encrypted_data.txt';document.body.appendChild(a);a.click();document.body.removeChild(a);URL.revokeObjectURL(url);// 显示保存成功提示const originalText = this.innerHTML;this.innerHTML = '<i class="fas fa-check"></i> 已保存';setTimeout(() => {this.innerHTML = originalText;}, 2000);});});</script>
</body>
</html>

http://www.dtcms.com/a/523152.html

相关文章:

  • 网站建设亿金手指花总12网站备案通讯地址
  • 给自己公司做网站运营百度软件商店下载安装
  • 建设通网站vip大连网站建设领超最好
  • 韩路做的网站是什么名字同城做推广哪个网站好
  • 帮别人做彩票网站莱芜警方网站官网
  • 只做外贸的公司网站长春网站建设5219
  • 建筑公司做网站买空间多大合适我做中医培训去哪个网站找学员
  • 怀化网站制作建设推广方案怎么写
  • 如何做电视剧的短视频网站wordpress 首页域名
  • 福建联泰建设集团网站网站怎么让百度收录
  • 网站建设公司专业网站研发开发做慧聪网价格网站价格
  • 萍乡做网站哪家好wordpress重复安装
  • 网络科技公司 网站建设今天重大新闻头条新闻
  • 南宁网站开发外包性价比个人建立网站后怎么盈利
  • 网站建设重要制作人豆瓣
  • 雄安移动网站中国建设银行网站会员注册
  • 网站推广排名平台网站开发与运维面试问题
  • 查外链网站装修公司加盟免费
  • 建设网站的目的饮食类信用渭南网站建设
  • 竞价网站做推广wordpress分类页数量
  • 山东网站制作策划广州专业制作网站
  • 长沙专业做网站公司有哪些手游推广平台代理
  • mvc做的网站怎么连接数据库建设银行网站会员有什么用
  • 网站设计机构排名南京企业建站系统模板
  • 永久免费的网站哪个好wordpress中文转拼音
  • php后台网站开发强强seo博客
  • c 网站开发环境成都网站开发外包公司
  • 石家庄网络营销网站推广目前网站开发技术
  • 服装设计有哪些网站技能培训学校
  • 做网线头子的顺序乌海seo公司