Fix typo, modify Japanese expression
Fix typo, modify Japanese expression. "復元" also means decrypt in Japanese, however more precisely, the word "復号" is used as the technical term. (People often use "復号化" but it is not correct when I split hairs;))
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
# 9.6 データを暗号化/復元する
|
||||
# 9.6 データを暗号化/復号する
|
||||
前の節でどのようにしてパスワードを保存するかご紹介しました。しかしあるときには、慎重に扱うべきデータを暗号化して保存し、将来のあるときにいつでもそれらを復元したい場合があります。この時双方向暗号化アルゴリズムを使って我々の要求を満たさなければなりません。
|
||||
|
||||
## base64で暗号化/復元する
|
||||
## base64で暗号化/復号する
|
||||
もしWebアプリケーションが十分に簡単であれば、データのセキュリティにはそれほど厳格な要求があるわけではありません。ですので比較的簡単な暗号化である`base64`を採用することができます。このような方法は実装するのが比較的簡単で、Go言語の`base64`パッケージではすでにこれをよくサポートしています。下の例をご覧ください:
|
||||
|
||||
package main
|
||||
@@ -38,9 +38,9 @@
|
||||
}
|
||||
|
||||
|
||||
## 高度な暗号化/復元
|
||||
## 高度な暗号化/復号
|
||||
|
||||
Go言語の`crypto`では双方向暗号の高度な暗号化/復元パッケージがあります:
|
||||
Go言語の`crypto`では双方向暗号の高度な暗号化/復号パッケージがあります:
|
||||
|
||||
- `crypto/aes`パッケージ:AES(Advanced Encryption Standard)は、Rijndael暗号化アルゴリズムとも呼ばれます。アメリカの連邦政府が採用しているブロック暗号の標準の一つです。
|
||||
- `crypto/des`パッケージ:DES(Data Encryption Standard)は双方向暗号化標準のひとつです。これは現在秘密鍵のシステムに最も広く使用されています。特に金融データのセキュリティの保護で使われています。かつてアメリカ連邦政府の暗号化のスタンダードでしたがすでにAESにとってかわられています。
|
||||
@@ -59,14 +59,14 @@ Go言語の`crypto`では双方向暗号の高度な暗号化/復元パッケー
|
||||
var commonIV = []byte{0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f}
|
||||
|
||||
func main() {
|
||||
//暗号化したい文字列
|
||||
// 暗号化したい文字列
|
||||
plaintext := []byte("My name is Astaxie")
|
||||
//暗号化された文字列を渡すと、plaintは渡された文字列になります。
|
||||
// 暗号化された文字列を渡すと、plaintは渡された文字列になります。
|
||||
if len(os.Args) > 1 {
|
||||
plaintext = []byte(os.Args[1])
|
||||
}
|
||||
|
||||
//aesの暗号化文字列
|
||||
// aesの暗号化文字列
|
||||
key_text := "astaxie12798akljzmknm.ahkjkljl;k"
|
||||
if len(os.Args) > 2 {
|
||||
key_text = os.Args[2]
|
||||
@@ -81,13 +81,13 @@ Go言語の`crypto`では双方向暗号の高度な暗号化/復元パッケー
|
||||
os.Exit(-1)
|
||||
}
|
||||
|
||||
//暗号化文字列
|
||||
// 暗号化文字列
|
||||
cfb := cipher.NewCFBEncrypter(c, commonIV)
|
||||
ciphertext := make([]byte, len(plaintext))
|
||||
cfb.XORKeyStream(ciphertext, plaintext)
|
||||
fmt.Printf("%s=>%x\n", plaintext, ciphertext)
|
||||
|
||||
// 復元文字列
|
||||
// 復号文字列
|
||||
cfbdec := cipher.NewCFBDecrypter(c, commonIV)
|
||||
plaintextCopy := make([]byte, len(plaintext))
|
||||
cfbdec.XORKeyStream(plaintextCopy, ciphertext)
|
||||
@@ -110,10 +110,10 @@ Go言語の`crypto`では双方向暗号の高度な暗号化/復元パッケー
|
||||
Decrypt(dst, src []byte)
|
||||
}
|
||||
|
||||
この3つの関数は暗号化/復元操作を実現します。詳細な操作は上の例をご覧ください。
|
||||
この3つの関数は暗号化/復号操作を実現します。詳細な操作は上の例をご覧ください。
|
||||
|
||||
## まとめ
|
||||
この節ではいくつかの暗号化/復元アルゴリズムをご紹介しました。Webアプリケーションを開発している時は要求に合わせて異なる方法によって暗号化/複合を行うことができます。一般的なアプリケーションではbase64アルゴリズムを採用することができます。より高度な場合はaesやdesアルゴリズムを採用することができます。
|
||||
この節ではいくつかの暗号化/復号アルゴリズムをご紹介しました。Webアプリケーションを開発している時は要求に合わせて異なる方法によって暗号化/復号を行うことができます。一般的なアプリケーションではbase64アルゴリズムを採用することができます。より高度な場合はaesやdesアルゴリズムを採用することができます。
|
||||
|
||||
|
||||
## links
|
||||
|
||||
Reference in New Issue
Block a user