AES Encrypt & Decrypt
Online Tool
Encrypt or decrypt text with passphrase AES (CryptoJS OpenSSL format) in your browser. Demo and learning only—not a production KMS. Nothing is uploaded.
Demo and learning only — you own key management. Passphrases and plaintext stay in your browser and are never uploaded. Not a production KMS.
Fixed preset: CryptoJS passphrase AES (OpenSSL-compatible Salted__ Base64, AES-CBC, EvpKDF, random salt). Same plaintext can yield different ciphertext each run.
- Input0
- Output0
- OptionsEncrypt
- PresetCryptoJS / OpenSSL
Input
Encrypted
What is this tool?
This AES encrypt and decrypt tool turns short plaintext into a portable ciphertext string with a passphrase, then restores the text with the same passphrase. Processing stays in your browser via CryptoJS-compatible passphrase AES.
The fixed preset is OpenSSL-style: AES-CBC, EvpKDF-derived key and IV, a random 8-byte salt, and Base64 ciphertext whose decoded bytes begin with Salted__. Because the salt is random, encrypting the same plaintext twice usually yields different ciphertext—both decrypt with the same passphrase.
Treat this as a demo and learning utility. You remain responsible for passphrase strength, storage, and sharing. It is not authenticated encryption (no GCM tag), not raw key wrapping, and not a substitute for a cloud KMS or secrets manager.
Common use cases
- Check that a known CryptoJS/OpenSSL-style ciphertext decrypts with a passphrase you already have
- Demo passphrase-based AES for teaching or local experiments
- Round-trip short notes before wiring real application crypto
How to use
- Choose Encrypt or Decrypt.
- Paste plaintext (or ciphertext) and enter the passphrase. Use show/hide if you need to verify typing.
- Click Encrypt or Decrypt (explicit run—results are not live-as-you-type).
- Copy the ciphertext or recovered plaintext. Sample loads a harmless demo note and passphrase.
Examples
| Input / setting | Output | Notes |
|---|---|---|
Encrypt hello + passphrase demo | Base64 starting with U2FsdGVkX1… | Decodes to OpenSSL Salted__ + salt + ciphertext. |
| Same plaintext + same passphrase, encrypt twice | Two different Base64 strings | Random salt each run; both decrypt with demo. |
| Decrypt with wrong passphrase | Empty / error | Wrong password or non-matching format—tool reports which case when possible. |
Paste non-Salted__ Base64 | Format error | Expects this tool’s CryptoJS OpenSSL preset, not raw AES hex blobs. |
Practical pitfalls
- Transit protection ≠ key sharing: Sending ciphertext over chat still requires a secure way to share the passphrase. Anyone with both can read the note.
- Not production KMS: No key rotation, audit trail, AEAD, or hardware-backed keys. Prefer AWS KMS, GCP Cloud KMS, Azure Key Vault, or audited libraries with explicit modes.
- Weak passphrases fail quietly at scale: Dictionary passphrases are offline-bruteforceable against captured ciphertext. Use long random secrets for anything sensitive—and still prefer real app crypto.
References
이 도구는 무엇인가요?
패스프레이즈로 짧은 평문을 휴대 가능한 암호문 문자열로 만들고, 같은 패스프레이즈로 다시 평문을 복원합니다. CryptoJS 호환 패스프레이즈 AES로 브라우저에서만 처리됩니다.
고정 프리셋은 OpenSSL 스타일입니다. AES-CBC, EvpKDF로 키·IV 유도, 랜덤 8바이트 솔트, 디코드 시 Salted__로 시작하는 Base64입니다. 솔트가 랜덤이라 같은 평문을 두 번 암호화하면 암호문이 달라질 수 있고, 둘 다 같은 패스프레이즈로 복호화됩니다.
데모·학습용으로 쓰세요. 패스프레이즈 강도·보관·공유 책임은 사용자에게 있습니다. AEAD(GCM)가 아니며 raw 키 래핑·클라우드 KMS 대체재가 아닙니다.
자주 쓰는 경우
- 이미 가진 패스프레이즈로 CryptoJS/OpenSSL 스타일 암호문 복호화 확인
- 패스프레이즈 AES 데모·로컬 실험
- 실제 앱 암호를 붙이기 전 짧은 메모 왕복 테스트
사용 방법
- 암호화 또는 복호화를 선택합니다.
- 평문(또는 암호문)과 패스프레이즈를 입력합니다. 필요하면 표시/숨기기로 타이핑을 확인합니다.
- 암호화/복호화를 클릭합니다(명시적 실행—입력 중 자동 변환 없음).
- 결과 암호문 또는 평문을 복사합니다. Sample은 무해한 데모 메모와 패스프레이즈를 넣습니다.
예시
| 입력 / 설정 | 출력 | 비고 |
|---|---|---|
hello + 패스프레이즈 demo 암호화 | U2FsdGVkX1…로 시작하는 Base64 | OpenSSL Salted__ + 솔트 + 암호문. |
| 동일 평문·패스프레이즈로 두 번 암호화 | 서로 다른 Base64 | 실행마다 솔트 다름; 둘 다 demo로 복호화. |
| 잘못된 패스프레이즈로 복호화 | 오류 | 틀린 비밀번호 또는 형식 불일치. |
Salted__가 아닌 Base64 | 형식 오류 | raw AES hex가 아니라 이 도구의 CryptoJS 프리셋. |
실무에서 흔한 실수
- 전송 보호 ≠ 키 공유: 채팅으로 암호문을 보내도 패스프레이즈를 안전하게 공유해야 합니다. 둘 다 가진 사람은 내용을 읽을 수 있습니다.
- 운영 KMS 아님: 키 회전·감사 로그·AEAD·HSM이 없습니다. AWS/GCP/Azure KMS나 감사된 라이브러리를 쓰세요.
- 약한 패스프레이즈: 탈취한 암호문에 대해 사전 공격이 가능합니다. 민감 데이터에는 긴 난수 비밀과 실제 앱 암호를 쓰세요.
참고자료
このツールについて
パスフレーズで短い平文を持ち運び可能な暗号文に変え、同じパスフレーズで平文に戻します。CryptoJS 互換のパスフレーズ AES でブラウザ内のみ処理します。
固定プリセットは OpenSSL 形式です。AES-CBC、EvpKDF で鍵・IV、ランダム 8 バイトソルト、デコードすると Salted__ で始まる Base64。ソルトがランダムなので同じ平文でも暗号文は変わり得ますが、どちらも同じパスフレーズで復号できます。
デモ・学習用です。パスフレーズの強度・保管・共有は利用者が責任を持ちます。AEAD(GCM)でも raw 鍵ラップでもクラウド KMS の代替でもありません。
よくある用途
- 手元のパスフレーズで CryptoJS/OpenSSL 形式の暗号文を復号できるか確認
- パスフレーズ AES のデモやローカル実験
- 本番アプリ暗号の前に短いメモを往復テスト
使い方
- 暗号化 または 復号 を選びます。
- 平文(または暗号文)とパスフレーズを入力。必要なら表示/非表示で確認します。
- 暗号化/復号 をクリック(明示実行—入力中の自動変換なし)。
- 結果をコピー。Sample は無害なデモ文とパスフレーズを入れます。
例
| 入力 / 設定 | 出力 | 備考 |
|---|---|---|
hello + パスフレーズ demo を暗号化 | U2FsdGVkX1… で始まる Base64 | OpenSSL Salted__ + ソルト + 暗号文。 |
| 同じ平文・パスフレーズで 2 回暗号化 | 異なる Base64 | 実行ごとにソルトが違う。どちらも demo で復号。 |
| 誤ったパスフレーズで復号 | エラー | パスワード不一致または形式不一致。 |
Salted__ でない Base64 | 形式エラー | raw AES hex ではなく本ツールの CryptoJS プリセット。 |
実務での落とし穴
- 通信保護 ≠ 鍵共有: チャットで暗号文を送ってもパスフレーズは別経路で安全に渡す必要があります。両方を持つ人は内容を読めます。
- 本番 KMS ではない: 鍵ローテーション・監査・AEAD・HSM はありません。クラウド KMS や監査済みライブラリを使ってください。
- 弱いパスフレーズ: 奪取された暗号文に対する辞書攻撃が可能です。機密には長い乱数秘密と本番用暗号を使ってください。
参考資料
¿Qué es esta herramienta?
Convierte texto corto en una cadena de ciphertext portátil con una frase secreta y lo restaura con la misma frase. Todo ocurre en el navegador con AES por frase secreta compatible con CryptoJS.
El preset fijo es estilo OpenSSL: AES-CBC, clave e IV vía EvpKDF, sal aleatoria de 8 bytes y Base64 cuya carga comienza por Salted__. Como la sal es aleatoria, cifrar el mismo texto dos veces suele dar distinto ciphertext; ambos se descifran con la misma frase.
Úselo como demo y aprendizaje. Usted gestiona la fuerza, el almacenamiento y el intercambio de la frase. No es cifrado autenticado (GCM), ni envoltura con clave en bruto, ni un KMS en la nube.
Casos de uso comunes
- Comprobar que un ciphertext estilo CryptoJS/OpenSSL se descifra con una frase conocida
- Demostrar AES por frase secreta en talleres o pruebas locales
- Probar ida y vuelta de notas cortas antes de integrar cripto real
Cómo usar
- Elija Cifrar o Descifrar.
- Pegue el texto (o ciphertext) y la frase. Use mostrar/ocultar si necesita comprobar la escritura.
- Pulse Cifrar o Descifrar (ejecución explícita—no hay transformación en vivo).
- Copie el resultado. Sample carga una nota y frase de demostración inofensivas.
Ejemplos
| Entrada / ajuste | Salida | Notas |
|---|---|---|
Cifrar hello + frase demo | Base64 que empieza por U2FsdGVkX1… | Decodifica a Salted__ + sal + ciphertext. |
| Mismo texto + misma frase, dos cifrados | Dos Base64 distintos | Sal aleatoria; ambos se descifran con demo. |
| Descifrar con frase incorrecta | Error | Contraseña incorrecta o formato no coincidente. |
Base64 sin Salted__ | Error de formato | Espera el preset CryptoJS de esta herramienta. |
Errores prácticos
- Proteger el tránsito ≠ compartir la clave: Enviar ciphertext por chat aún exige compartir la frase fuera de banda. Quien tenga ambos lee el mensaje.
- No es un KMS de producción: Sin rotación, auditoría, AEAD ni HSM. Prefiera un KMS en la nube o bibliotecas auditadas.
- Frases débiles: Un ciphertext capturado se puede atacar con diccionarios. Use secretos largos y aleatorios—y cripto de aplicación real.
Referencias
Qu'est-ce que cet outil ?
Transforme un court texte en chaîne de ciphertext portable avec une phrase secrète, puis le restaure avec la même phrase. Traitement uniquement dans le navigateur via AES par phrase secrète compatible CryptoJS.
Le préréglage fixe est de style OpenSSL : AES-CBC, clé et IV via EvpKDF, sel aléatoire de 8 octets et Base64 dont la charge commence par Salted__. Comme le sel est aléatoire, deux chiffrements du même texte donnent souvent des ciphertext différents—tous deux se déchiffrent avec la même phrase.
Réservé à la démo et à l’apprentissage. Vous restez responsable de la force, du stockage et du partage de la phrase. Ce n’est ni de l’AEAD (GCM), ni un wrapping de clé brute, ni un KMS cloud.
Cas d'usage courants
- Vérifier qu’un ciphertext style CryptoJS/OpenSSL se déchiffre avec une phrase connue
- Démontrer l’AES par phrase secrète en atelier ou en local
- Tester un aller-retour de courtes notes avant d’intégrer une vraie crypto applicative
Comment utiliser
- Choisissez Chiffrer ou Déchiffrer.
- Collez le texte (ou ciphertext) et la phrase. Affichez/masquez pour vérifier la saisie si besoin.
- Cliquez Chiffrer ou Déchiffrer (exécution explicite—pas de conversion en direct).
- Copiez le résultat. Sample charge une note et une phrase de démo inoffensives.
Exemples
| Entrée / réglage | Sortie | Notes |
|---|---|---|
Chiffrer hello + phrase demo | Base64 commençant par U2FsdGVkX1… | Décode en Salted__ + sel + ciphertext. |
| Même texte + même phrase, deux chiffrements | Deux Base64 différents | Sel aléatoire ; les deux se déchiffrent avec demo. |
| Déchiffrer avec mauvaise phrase | Erreur | Mot de passe incorrect ou format incompatible. |
Base64 sans Salted__ | Erreur de format | Attend le préréglage CryptoJS de cet outil. |
Pièges courants
- Protection du transit ≠ partage de clé : Envoyer le ciphertext en chat exige encore de partager la phrase hors bande. Quiconque a les deux lit le message.
- Pas un KMS de production : Pas de rotation, d’audit, d’AEAD ni de HSM. Préférez un KMS cloud ou des bibliothèques auditées.
- Phrases faibles : Un ciphertext capturé peut être attaqué par dictionnaire. Utilisez de longs secrets aléatoires—et une vraie crypto applicative.
Références
这个工具是什么?
用口令把短明文变成可携带的密文字符串,再用同一口令还原。通过兼容 CryptoJS 的口令 AES,仅在浏览器中处理。
固定预设为 OpenSSL 风格:AES-CBC、经 EvpKDF 派生密钥与 IV、随机 8 字节盐,以及解码后以 Salted__ 开头的 Base64。盐随机,因此同一明文两次加密通常得到不同密文——二者都可用同一口令解密。
仅作演示与学习。口令强度、存储与共享由你负责。不是认证加密(无 GCM)、不是裸密钥封装,也不是云 KMS 替代品。
常见用途
- 用已知口令验证 CryptoJS/OpenSSL 风格密文能否解密
- 教学或本地实验演示口令 AES
- 接入正式应用密码学前做短文本往返测试
如何使用
- 选择加密或解密。
- 粘贴明文(或密文)并输入口令;可用显示/隐藏核对输入。
- 点击加密或解密(显式运行—不会边输入边转换)。
- 复制结果。Sample 会填入无害的演示文本与口令。
示例
| 输入 / 设置 | 输出 | 说明 |
|---|---|---|
加密 hello + 口令 demo | 以 U2FsdGVkX1… 开头的 Base64 | 解码为 Salted__ + 盐 + 密文。 |
| 相同明文与口令加密两次 | 两段不同 Base64 | 每次盐不同;都可用 demo 解密。 |
| 错误口令解密 | 错误 | 口令不对或格式不匹配。 |
非 Salted__ 的 Base64 | 格式错误 | 需要本工具的 CryptoJS 预设,不是裸 AES hex。 |
实践中的常见误区
- 传输保护 ≠ 密钥共享: 在聊天里发送密文仍需带外安全共享口令。同时拥有两者的人可读内容。
- 不是生产 KMS: 无密钥轮换、审计、AEAD 或 HSM。请用云 KMS 或经过审计的库。
- 弱口令: 截获的密文可被字典攻击。敏感数据请用长随机密钥与正式应用密码学。
参考资料
這個工具是什麼?
用密碼片語把短明文變成可攜帶的密文字串,再用同一密碼片語還原。透過相容 CryptoJS 的密碼片語 AES,僅在瀏覽器中處理。
固定預設為 OpenSSL 風格:AES-CBC、經 EvpKDF 衍生金鑰與 IV、隨機 8 位元組鹽,以及解碼後以 Salted__ 開頭的 Base64。鹽是隨機的,因此同一明文兩次加密通常得到不同密文——兩者都可用同一密碼片語解密。
僅作示範與學習。密碼片語強度、儲存與共享由你負責。不是認證加密(無 GCM)、不是裸金鑰封裝,也不是雲端 KMS 替代品。
常見用途
- 用已知密碼片語驗證 CryptoJS/OpenSSL 風格密文能否解密
- 教學或本機實驗示範密碼片語 AES
- 接入正式應用密碼學前做短文字往返測試
如何使用
- 選擇加密或解密。
- 貼上明文(或密文)並輸入密碼片語;可用顯示/隱藏核對輸入。
- 點擊加密或解密(明確執行—不會邊輸入邊轉換)。
- 複製結果。Sample 會填入無害的示範文字與密碼片語。
範例
| 輸入 / 設定 | 輸出 | 說明 |
|---|---|---|
加密 hello + 密碼片語 demo | 以 U2FsdGVkX1… 開頭的 Base64 | 解碼為 Salted__ + 鹽 + 密文。 |
| 相同明文與密碼片語加密兩次 | 兩段不同 Base64 | 每次鹽不同;都可用 demo 解密。 |
| 錯誤密碼片語解密 | 錯誤 | 密碼不對或格式不符。 |
非 Salted__ 的 Base64 | 格式錯誤 | 需要本工具的 CryptoJS 預設,不是裸 AES hex。 |
實務上常見陷阱
- 傳輸保護 ≠ 金鑰共享: 在聊天傳送密文仍需帶外安全共享密碼片語。同時擁有兩者的人可讀內容。
- 不是正式環境 KMS: 無金鑰輪換、稽核、AEAD 或 HSM。請用雲端 KMS 或經過審核的函式庫。
- 弱密碼片語: 截獲的密文可被字典攻擊。敏感資料請用長隨機密鑰與正式應用密碼學。
參考資料
Last reviewed: 2026-07-27
Frequently asked questions
- Which AES mode and format does this use?
- CryptoJS passphrase encryption: AES-CBC with key and IV derived via EvpKDF from your passphrase, a random 8-byte salt, and OpenSSL-compatible Base64 that starts with a Salted__ payload. It is not raw AES with a hex key you paste, and not AES-GCM.
- Can Utill.net recover my passphrase?
- No. Encryption runs only in your browser. Lost passphrases cannot be recovered by us or anyone else.
- Is encrypting text enough to share secrets safely?
- No. Ciphertext still needs a secure channel or access control, and the passphrase must be shared out of band. Encrypting for transit is not the same as managing keys. For production, use authenticated encryption and a real KMS or secrets manager.
- Should I use this instead of a cloud KMS?
- No. Prefer AWS KMS, GCP Cloud KMS, Azure Key Vault, or an audited app crypto stack with key rotation, audit logs, and AEAD. This page is a local demo utility.