DESで暗号化・復号化
- 題名: DESで暗号化・復号化
- 著者: そば
- 日時: 2009/12/01 19:36:21
- ID: 25936
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: DESで暗号化・復号化
- 著者: Hongliang
- 日時: 2009/12/01 19:51:19
- ID: 25937
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: DESで暗号化・復号化
- 著者: そば
- 日時: 2009/12/02 16:26:50
- ID: 25946
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[3]: DESで暗号化・復号化
- 著者: Hongliang
- 日時: 2009/12/02 16:48:20
- ID: 25948
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[4]: DESで暗号化・復号化
- 著者: そば
- 日時: 2009/12/02 18:30:34
- ID: 25950
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[5]: DESで暗号化・復号化
- 著者: Hongliang
- 日時: 2009/12/02 19:29:16
- ID: 25951
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[6]: DESで暗号化・復号化
- 著者: そば
- 日時: 2009/12/02 21:02:31
- ID: 25954
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[7]: DESで暗号化・復号化
- 著者: Hongliang
- 日時: 2009/12/02 21:51:30
- ID: 25955
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
サンプルプログラムを拝借して、データとキーをバイト配列で受け取り
結果をバイト配列で返す関数を作成しようとしています。
暗号化がうまくいったので、同じやり方で復号化もできるのかと思いましたが
うまく動きませんでした。復号化の場合は、同じように単純なやり方では
できないものでしょうか?
''' 文字列を暗号化する
Public Shared Function EncryptString(ByVal bytIn() As Byte, ByVal bytKey() As Byte) As Byte()
Dim bytTmpIV() As Byte = {&H0, &H0, &H0, &H0, &H0, &H0, &H0, &H0}
'DESCryptoServiceProviderオブジェクトの作成
Dim des As New System.Security.Cryptography.DESCryptoServiceProvider
'共有キーと初期化ベクタを設定
des.Key = bytKey
des.IV = bytTmpIV
'暗号化されたデータを書き出すためのMemoryStream
Dim msOut As New System.IO.MemoryStream
'DES暗号化オブジェクトの作成
Dim desencrypt As System.Security.Cryptography.ICryptoTransform = des.CreateEncryptor()
'書き込むためのCryptoStreamの作成
Dim cryptStreem As New System.Security.Cryptography.CryptoStream(msOut, desencrypt, System.Security.Cryptography.CryptoStreamMode.Write)
'書き込む
cryptStreem.Write(bytIn, 0, bytIn.Length)
'暗号化されたデータを取得
Dim bytesOut As Byte() = msOut.ToArray
'閉じる
cryptStreem.Close()
msOut.Close()
'結果を返す
Return bytesOut
End Function
''' 文字列を復号化する
Public Shared Function DecryptString(ByVal bytIn() As Byte, ByVal bytKey() As Byte) As Byte()
Dim bytTmpIV() As Byte = {&H0, &H0, &H0, &H0, &H0, &H0, &H0, &H0}
'DESCryptoServiceProviderオブジェクトの作成
Dim des As New System.Security.Cryptography.DESCryptoServiceProvider
'共有キーと初期化ベクタを設定
des.Key = bytKey
des.IV = bytTmpIV
'復号化されたデータを読み込むためのMemoryStream
Dim msOut As New System.IO.MemoryStream
'DES復号化オブジェクトの作成
Dim desdecrypt As System.Security.Cryptography.ICryptoTransform = des.CreateDecryptor()
'書き込むためのCryptoStreamの作成
Dim cryptStreem As New System.Security.Cryptography.CryptoStream(msOut, desdecrypt, System.Security.Cryptography.CryptoStreamMode.Write)
''書き込む
cryptStreem.Write(bytIn, 0, bytIn.Length)
''復号化されたデータを取得
Dim bytesOut As Byte() = msOut.ToArray
'閉じる
cryptStreem.Close()
msOut.Close()
Return bytesOut
End Function