1import{_ as q}from"./CMDkOMlB.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import{d as Z,u as G,c as b,w as i,o as I,h as o,i as s,j as y,ab as J,Y as n,t as l,a0 as Q,aR as Y,af as W,aE as X,aF as ee,g as w,aL as te,bu as oe,a5 as k,Z as se,bO as ae,ax as le,aw as re,n as x,bP as d}from"./7Rh2xM73.js";import{u as ne}from"./Du2YAAgM.js";import{I as ie}from"./MCRaqAxx.js";import{I as ue}from"./ueoGoWU0.js";import{I as ce}from"./BttPPnGt.js";import{I as de}from"./CEhPMA_r.js";import{I as pe}from"./BDd7Htk8.js";import{I as me}from"./NNoMHRCw.js";const ve={class:"TextCrypto"},ye={class:"MainContent"},fe={class:"InputPanel"},Ce={class:"PanelHeader"},_e={class:"HeaderLeft"},Ie={class:"HeaderActions"},ge={class:"OperationPanel"},he={class:"FormItem"},xe={class:"FormLabel"},be={key:0,class:"FormItem"},$e={class:"FormLabel"},ke={class:"ActionButtons"},Te={class:"OutputPanel"},Se={class:"PanelHeader"},we={class:"HeaderLeft"},De={key:0,class:"HeaderActions"},Ve={class:"AlgorithmInfo"},Ee={class:"InfoHeader"},Re={class:"InfoGrid"},Ue={class:"InfoItem"},Pe={class:"InfoTitle"},ze={class:"InfoDesc"},Be={class:"InfoItem"},Ae={class:"InfoTitle"},Fe={class:"InfoDesc"},He={class:"InfoItem"},Ke={class:"InfoTitle"},Ne={class:"InfoDesc"},Oe={class:"InfoItem"},Le={class:"InfoTitle"},je={class:"InfoDesc"},Me={class:"InfoItem"},qe={class:"InfoTitle"},Ze={class:"InfoDesc"},Ge={class:"InfoItem"},Je={class:"InfoTitle"},Qe={class:"InfoDesc"},Ye={__name:"TextCrypto",setup(We){const{t:u}=G(),r=x(""),a=x(""),C=x("base64"),m=x(""),g=x(3),{copy:D,notify:c}=ne({inputText:r,outputText:a,secretKey:m,shiftValue:g}),T={A:".-",B:"-...",C:"-.-.",D:"-..",E:".",F:"..-.",G:"--.",H:"....",I:"..",J:".---",K:"-.-",L:".-..",M:"--",N:"-.",O:"---",P:".--.",Q:"--.-",R:".-.",S:"...",T:"-",U:"..-",V:"...-",W:".--",X:"-..-",Y:"-.--",Z:"--..",0:"-----",1:".----",2:"..---",3:"...--",4:"....-",5:".....",6:"-....",7:"--...",8:"---..",9:"----.",".":".-.-.-",",":"--..--","?":"..--..","!":"-.-.--","/":"-..-.","(":"-.--.",")":"-.--.-","&":".-...",":":"---...",";":"-.-.-.","=":"-...-","+":".-.-.","-":"-....-",_:"..--.-",'"':".-..-.",$:"...-..-","@":".--.-."," ":"/"},V=Object.fromEntries(Object.entries(T).map(([e,t])=>[t,e])),E=()=>
1{if(!r.value){c("warning",u("tools.textCrypto.pleaseInput"));return}try{switch(C.value){case"base64":a.value=d.enc.Base64.stringify(d.enc.Utf8.parse(r.value));break;case"aes":if(!m.value){c("warning",u("tools.textCrypto.aesKeyRequired"));return}a.value=d.AES.encrypt(r.value,m.value).toString();break;case"des":if(!m.value){c("warning",u("tools.textCrypto.desKeyRequired"));return}a.value=d.DES.encrypt(r.value,m.value).toString();break;case"caesar":a.value=$(r.value,Number(g.value));break;case"rot13":a.value=$(r.value,13);break;case"morse":a.value=U(r.value);break;case"url":a.value=encodeURIComponent(r.value);break;case"hex":a.value=d.enc.Hex.stringify(d.enc.Utf8.parse(r.value));break;case"unicode":a.value=z(r.value);break;case"reverse":a.value=r.value.split("").reverse().join("");break}c("success",u("tools.textCrypto.encryptSuccess"))}catch(e){c("error",u("tools.textCrypto.encryptFailed",{message:e.message}))}},R=()=>{if(!r.value){c("warning",u("tools.textCrypto.pleaseDecrypt"));return}try{switch(C.value){case"base64":a.value=d.enc.Base64.parse(r.value).toString(d.enc.Utf8);break;case"aes":if(!m.value){c("warning",u("tools.textCrypto.aesKeyRequired"));return}const e=d.AES.decrypt(r.value,m.value);if(a.value=e.toString(d.enc.Utf8),!a.value)throw new Error(u("tools.textCrypto.decryptKeyError"));break;case"des":if(!m.value){c("warning",u("tools.textCrypto.desKeyRequired"));return}const t=d.DES.decrypt(r.value,m.value);if(a.value=t.toString(d.enc.Utf8),!a.value)throw new Error(u("tools.textCrypto.decryptKeyError"));break;case"caesar":a.value=S(r.value,Number(g.value));break;case"rot13":a.value=S(r.value,13);break;case"morse":a.value=P(r.value);break;case"url":a.value=decodeURIComponent(r.value);break;case"hex":a.value=d.enc.Hex.parse(r.value).toString(d.enc.Utf8);break;case"unicode":a.value=B(r.value);break;case"reverse":a.value=r.value.split("").reverse().join("");break}c("success",u("tools.textCrypto.decryptSuccess"))}catch(e){c("error",u("tools.textCrypto.decryptFailed",{message:e.message||u("tools.textCrypto.decryptFailedFallback")}))}},$=(e,t)=>e.replace(/[a-zA-Z]/g,p=>{const h=p<="Z"?65:97;return String.fromCharCode(((p.charCodeAt(0)-h+t)%26+26)%26+h)}),S=(e,t)=>{const p=Number(t);return $(e,(26-p)%26)},U=e=>e.toUpperCase().split("").map(t=>T[t]||t).join(" "),P=e=>e.split(" ").map(t=>V[t]||t).join(""),z=e=>e.split("").map(t=>"\\u"+t.charCodeAt(0).toString(16).padStart(4,"0")).join(""),B=e=>e.replace(/\\u([0-9a-fA-F]{4})/g,(t,p)=>String.fromCharCode(parseInt(p,16))),A=()=>{const e=r.value;r.value=a.value,a.value=e},F=async()=>{try{r.value=await navigator.clipboard.readText(),c("success",u("common.paste")+u("tools.textCrypto.pasteOk"))}catch{c("error",u("common.paste")+u("tools.textCrypto.pasteFail"))}},H=()=>{r.value="",a.value="",c("info",u("common.cleared"))},K=()=>{if(!a.value){c("warning",u("common.noCopyContent"));return}D(a.value)};return(e,t)=>{const p=Q,h=W,v=ee,N=X,O=te,L=se,j=ae,_=re,M=q;return I(),b(M,{title:e.$t("tools.textCrypto.title"),description:e.$t("tools.textCrypto.subtitle"),tags:["crypto","encrypt","text"]},{default:i(()=>[o("div",ve,[o("div",ye,[o("div",fe,[o("div",Ce,[o("div",_e,[s(y(J)),n(" "+l(e.$t("tools.textCrypto.inputText")),1)]),o("div",Ie,[s(p,{type:"text",size:"small",onClick:F},{default:i(()=>[s(y(ie)),n(" "+l(e.$t("common.paste")),1)]),_:1}),s(p,{type:"text",size:"small",status:"danger",onClick:H},{default:i(()=>[s(y(Y)),n(" "+l(e.$t("common.clear")),1)]),_:1})])]),s(h,{modelValue:r.value,"onUpdate:modelValue":t[0]||(t[0]=f=>r.value=f),"auto-size":{minRows:12,maxRows:16},placeholder:e.$t("tools.textCrypto.inputPh")},null,8,["modelValue","placeholder"])]),o("div",ge,[o("div",he,[o("div",xe,l(e.$t("tools.textCrypto.method")),1),s(N,{modelValue:C.value,"onUpdate:modelValue":t[1]||(t[1]=f=>C.value=f),placeholder:e.$t("tools.textCrypto.methodPh")},{default:i(()=>[s(v,{value:"base64"},{default:i(()=>[...t[5]||(t[5]=[n("Base64",-1)])]),_:1}),s(v,{value:"aes"},{default:i(()=>[...t[6]||(t[6]=[n("AES",-1)])]),_:1}),s(v,{value:"des"},{default:i(()=>[...t[7]||(t[7]=[n("DES",-1)])]),_:1}),s(v,{value:"caesar"},{default:i(()=>[n(l(e.$t("tools.textCrypto.methodCaesar")),1)]),_:1}),s(v,{value:"rot13"},{default:i(()=>[...t[8]||(t[8]=[n("ROT13",-1)])]),_:1}),s(v,{value:"morse"},{default:i(()=>[n(l(e.$t("tools.textCrypto.methodMorse")),1)]),_:1}),s(v,{value:"url"},{default:i(()=>[n("URL"+l(e.$t("tools.textCrypto.encoding")),1)]),_:1}),s(v,{value:"hex"},{default:i(()=>[n("Hex"+l(e.$t("tools.textCrypto.encoding")),1)]),_:1}),s(v,{value:"unicode"},{default:i(()=>[n("Unicode"+l(e.$t("tools.textCrypto.encoding")),1)]),_:1}),s(v,{value:"reverse"},{default:i(()=>[n(l(e.$t("tools.textCrypto.methodReverse")),1)]),_:1})]),_:1},8,["modelValue","placeholder"])]),["aes","des","caesar"].includes(C.value)?(I(),w("div",be,[o("div",$e,[n(l(C.value==="caesar"?e.$t("tools.textCrypto.shift"):e.$t("tools.textCrypto.secretKey"))+" ",1),C.value==="aes"?(I(),b(O,{key:0,content:e.$t("tools.textCrypto.aesKeyTip")},{default:i(()=>[s(y(oe))]),_:1},8,["content"])):k("",!0)]),C.value==="caesar"?(I(),b(L,{key:0,modelValue:g.value,"onUpdate:modelValue":t[2]||(t[2]=f=>g.value=f),min:1,max:25,placeholder:"1-25"},null,8,["modelValue"])):(I(),b(j,{key:1,modelValue:m.value,"onUpdate:modelValue":t[3]||(t[3]=f=>m.value=f),placeholder:e.$t("tools.textCrypto.secretKeyPh"),"allow-clear":""},null,8,["modelValue","placeholder"]))])):k("",!0),o("div",ke,[s(p,{type:"primary",size:"large",long:"",onClick:E},{default:i(()=>[s(y(ue)),n(" "+l(e.$t("tools.textCrypto.encrypt")),1)]),_:1}),s(p,{size:"large",long:"",onClick:R},{default:i(()=>[s(y(ce)),n(" "+l(e.$t("tools.textCrypto.decrypt")),1)]),_:1})]),o("div",{class:"SwapButton",onClick:A},[s(y(de))])]),o("div",Te,[o("div",Se,[o("div",we,[s(y(pe)),n(" "+l(e.$t("tools.textCrypto.outputResult")),1)]),a.value?(I(),w("div",De,[s(p,{type:"text",size:"small",onClick:K},{default:i(()=>[s(y(le)),n(" "+l(e.$t("common.copy")),1)]),_:1})])):k("",!0)]),s(h,{modelValue:a.value,"onUpdate:modelValue":t[4]||(t[4]=f=>a.value=f),"auto-size":{minRows:12,maxRows:16},placeholder:e.$t("tools.textCrypto.outputPh"),readonly:""},null,8,["modelValue","placeholder"])])]),o("div",Ve,[o("div",Ee,[s(y(me)),n(" "+l(e.$t("tools.textCrypto.algoInfo")),1)]),o("div",Re,[o("div",Ue,[o("div",Pe,[t[9]||(t[9]=o("span",null,"AES-256",-1)),s(_,{color:"green",size:"small"},{default:i(()=>[n(l(e.$t("tools.textCrypto.tagRecommended")),1)]),_:1}
1)]),o("div",ze,l(e.$t("tools.textCrypto.aesDesc")),1)]),o("div",Be,[o("div",Ae,[t[10]||(t[10]=o("span",null,"DES",-1)),s(_,{color:"orange",size:"small"},{default:i(()=>[n(l(e.$t("tools.textCrypto.tagNotRecommended")),1)]),_:1})]),o("div",Fe,l(e.$t("tools.textCrypto.desDesc")),1)]),o("div",He,[o("div",Ke,[t[11]||(t[11]=o("span",null,"Base64",-1)),s(_,{color:"arcoblue",size:"small"},{default:i(()=>[n(l(e.$t("tools.textCrypto.tagEncoding")),1)]),_:1})]),o("div",Ne,l(e.$t("tools.textCrypto.base64Desc")),1)]),o("div",Oe,[o("div",Le,[o("span",null,l(e.$t("tools.textCrypto.methodCaesar")),1),s(_,{color:"orange",size:"small"},{default:i(()=>[n(l(e.$t("tools.textCrypto.tagStudy")),1)]),_:1})]),o("div",je,l(e.$t("tools.textCrypto.caesarDesc")),1)]),o("div",Me,[o("div",qe,[o("span",null,l(e.$t("tools.textCrypto.methodMorse")),1),s(_,{color:"arcoblue",size:"small"},{default:i(()=>[n(l(e.$t("tools.textCrypto.tagEncoding")),1)]),_:1})]),o("div",Ze,l(e.$t("tools.textCrypto.morseDesc")),1)]),o("div",Ge,[o("div",Je,[t[12]||(t[12]=o("span",null,"ROT13",-1)),s(_,{color:"orange",size:"small"},{default:i(()=>[n(l(e.$t("tools.textCrypto.tagStudy")),1)]),_:1})]),o("div",Qe,l(e.$t("tools.textCrypto.rot13Desc")),1)])])])])]),_:1},8,["title","description"])}}},gt=Z(Ye,[["__scopeId","data-v-16fc73a1"]]);export{gt as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.