JavaScriptで RSA 公開鍵による暗号化、復号化が出来るライブラリ「cryptico.js」
RSA鍵の生成と公開鍵による暗号化、復号化が出来るJavaScript「cryptico.js」をご紹介。
RSA鍵の作り方
var PassPhrase = "The Moon is a Harsh Mistress."; var Bits = 1024; var MattsRSAkey = cryptico.generateRSAKey(PassPhrase, Bits);
公開鍵の作り方
var MattsPublicKeyString = cryptico.publicKeyString(MattsRSAkey);
すると、以下のような文字列が生成されます。
uXjrkGqe5WuS7zsTg6Z9DuS8cXLFz38ue+xrFzxrcQJCXtVccCoUFP2qH/AQ 4qMvxxvqkSYBpRm1R5a4/NdQ5ei8sE8gfZEq7dlcR+gOSv3nnS4/CX1n5Z5m 8bvFPF0lSZnYQ23xlyjXTaNacmV0IuZbqWd4j9LfdAKq5dvDaoE=
メッセージの暗号化
メッセージを暗号化してみます。
var PlainText = "Matt, I need you to help me with my Starcraft strategy."; var EncryptionResult = cryptico.encrypt(PlainText, MattsPublicKeyString);
すると、以下のような暗号化された文字列が取得できます。
OOHoAlfm6Viyl7afkUVRoYQv24AfdLnxaay5GjcqpxvEK+dph5kUFZEZIFKo vVoHoZbtUMekSbMqHQr3wNNpvcNWr4E3DgNLfMZQA1pCAUVmPjNM1ZQmrkKY HPKvkhmVKaBiYAJGoO/YiFfKnaylLpKOYJZctkZc4wflZcEEqqg=?cJPt71I HcU5c2LgqGXQKcx2BaAbm25Q2Ku94c933LX5MObL9qbTJEVEv29U0C3gIqcd qwMV6nl33GtHjyRdHx5fZcon21glUKIbE9P71NwQ=
メッセージを復号化
では、暗号化されたメッセージを復号化してみましょう。
var CipherText = "OOHoAlfm6Viyl7afkUVRoYQv24AfdLnxaay5GjcqpxvEK+dph5kUFZEZIFKo \ vVoHoZbtUMekSbMqHQr3wNNpvcNWr4E3DgNLfMZQA1pCAUVmPjNM1ZQmrkKY \ HPKvkhmVKaBiYAJGoO/YiFfKnaylLpKOYJZctkZc4wflZcEEqqg=?cJPt71I \ HcU5c2LgqGXQKcx2BaAbm25Q2Ku94c933LX5MObL9qbTJEVEv29U0C3gIqcd \ qwMV6nl33GtHjyRdHx5fZcon21glUKIbE9P71NwQ="; var DecryptionResult = cryptico.decrypt(CipherText, MattsRSAkey);
これでメッセージが復号化されました。
署名による暗号化
var PassPhrase = "There Ain't No Such Thing As A Free Lunch."; var SamsRSAkey = cryptico.generateRSAKey(PassPhrase, 1024); var PlainText = "Matt, I need you to help me with my Starcraft strategy."; var EncryptionResult = cryptico.encrypt(PlainText, MattsPublicKeyString, SamsRSAkey);
公開鍵と秘密鍵の役割は通常の場合においては、公開鍵は暗号化に使われ、秘密鍵は復号に用いられますが、RSA暗号においては平文と暗号文の定義域が同じ(平文空間=暗号文空間である)ため、任意の文書(メッセージ)を暗号文とみなして復号することができるようになります。
クライアントサイドでのセキュリティ対策に使えそうですね。
詳細&ダウンロードは下のリンクからどうぞ。
最新情報をお届けします
- Website: https://github.com/wwwtyro/cryptico