SQL2005 は、SQL SERVER での .net アプリケーションの展開をサポートしているため、.net で記述された暗号化などの一部の操作は、プログラムから計算を実行する必要がなく、完全に SQL に移行でき、データベースを比較的独立させることができます。プログラムからのアクセスが可能になり、非常に便利です。
少し前に、データを暗号化する必要があったので、3DES 暗号化関数を作成して SQL2005 にデプロイしました。もちろん、秘密キーもデータベース内にテーブルとして存在します。このキーについては、USB の使用を検討できます。 -key および rsa 暗号化を将来的に使用するか、データのセキュリティを確保するために他の方法で暗号化します。次に、sqlserver にデプロイされる暗号化機能を実装する方法について説明します。
新しいプロジェクトを作成します。 VB のデータベース --> SQL Server プロジェクトで、DESCryptoService という新しいプロジェクトを作成しました。その後、データベース参照を追加し、展開先のデータベースを選択するように求められます。
以下のコードを書けばOKです
Imports System
Imports System.Data
Imports System.Data.SqlClient
Imports System.Data.SqlTypes
Imports Microsoft.SqlServer.Server
Imports System.IO
Imports System.Xml
Imports System .Text
Imports System.Security.Cryptography
Partial Public Class EncryptToBase64DecryptFromBase64Class EncryptToBase64DecryptFromBase64
Public Shared Function EncryptToBase64String()Function EncryptToBase64String( ByVal stringToEncryptsql As SqlString、ByVal SEncryptionKeysql As SqlString ) As SqlString
Dim stringToEncrypt As String = CType(stringToEncryptsql, String)
Dim SEncryptionKey As String = CType(SEncryptionKeysql, String)
Dim IV() As Byte = {&H12, &H34, &H56, &H78, &H90, &HAB, &HCD, &HEF }
Dim key() As Byte = {}
Try
key = System.Text.Encoding.UTF8.GetBytes(Left(SEncryptionKey, 8))
Dim des As New DESCryptoServiceProvider()
Dim inputByteArray() As Byte = Encoding .UTF8.GetBytes(stringToEncrypt)
Dim ms As New MemoryStream()
Dim cs As New CryptoStream(ms, des.CreateEncryptor(key, IV), CryptoStreamMode.Write)
cs.Write(inputByteArray, 0, inputByteArray.Length )
cs.FlushFinalBlock()