Web上で入力した内容を記憶しておきたい場合は、CookielocalStorageなどに保存することを考えますが、メールアドレスや個人情報などは暗号化して、少しでも安全に対応したいですよね。

ということで、簡易的ですが暗号化を試してみました。実際にはテレワーク等の在宅勤務で、毎日勤怠メールを送るように作ったggApp FormSendMailというWebツールで実装しています。

暗号は、シーザー暗号を使いました。シーザー暗号だけではちょっと心もとないので反転も加えてみました。


暗号化 シーザ暗号+反転

var EnCript = function(ss){
  var sss = encodeURIComponent(ss).split("");
  var rr = sss.map( ss => {
    return String.fromCharCode(ss.charCodeAt(0) - 5);
  });
  return rr.reverse().join("");
};

暗号化したい文字 ss を受け取り、URIエンコードします。

そのあとすべての文字について5つほどずらして rr に保存します。ずらすのは5つでなくてもマイナスでも引数にしてもOKです。

map は、配列の中身を順にブロックで処理し、処理後の配列を返します。 =>アロー関数式です。 (ss.charCodeAt(0) - 5)シーザー暗号の部分です。

最後に reverse反転させ、 join で配列要素をくっつけて文字列にして返します。


復号化 シーザ暗号+反転

var DeCript = function(ss){
  var sss = ss.split("").reverse();
  var rr = sss.map( ss => {
    return String.fromCharCode(ss.charCodeAt(0) + 5);
  });
  return decodeURIComponent(rr.join(""));
};

複合は、暗号の逆を実行するだけです。



参考

2022/12/09