Web上で入力した内容を記憶しておきたい場合は、CookieやlocalStorageなどに保存することを考えますが、メールアドレスや個人情報などは暗号化して、少しでも安全に対応したいですよね。
ということで、簡易的ですが暗号化を試してみました。実際にはテレワーク等の在宅勤務で、毎日勤怠メールを送るように作った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