指定したバイト配列の指定した領域を base 64 から変換します。
Public Overridable Function TransformFinalBlock( _
ByVal inputBuffer() As Byte, _ ByVal inputOffset As Integer, _ ByVal inputCount As Integer _) As Byte() Implements ICryptoTransform.TransformFinalBlock
[C#]
public virtual byte[] TransformFinalBlock(byte[] inputBuffer,intinputOffset,intinputCount);
[C++]
public: virtual unsigned char TransformFinalBlock(unsigned charinputBuffer __gc[],intinputOffset,intinputCount) __gc[];
[JScript]
public function TransformFinalBlock(
inputBuffer : Byte[],inputOffset : int,inputCount : int) : Byte[];
パラメータ
- inputBuffer
base 64 から変換する入力。 - inputOffset
バイト配列内のデータの使用開始位置を示すオフセット。 - inputCount
バイト配列内でデータとして使用されるバイトの数。
戻り値
計算された変換後のデータ。
実装
ICryptoTransform.TransformFinalBlock
例外
例外の種類 | 条件 |
---|---|
ObjectDisposedException | 現在の FromBase64Transform は既に破棄されています。 |
使用例
Imports System
Imports System.IO
Imports System.Security.Cryptography
Namespace ToBase64Transform_Examples
Class MyMainClass
Public Shared Sub Main()
'Insert your file names into this method call.
DecodeFromFile("c:\encoded.txt", "c:\roundtrip.txt")
End Sub 'Main
Public Shared Sub DecodeFromFile(ByVal inFileName As String, ByVal outFileName As String)
Dim myTransform As New FromBase64Transform(FromBase64TransformMode.IgnoreWhiteSpaces)
Dim myOutputBytes(myTransform.OutputBlockSize - 1) As Byte
'Open the input and output files.
Dim myInputFile As New FileStream(inFileName, FileMode.Open, FileAccess.Read)
Dim myOutputFile As New FileStream(outFileName, FileMode.Create, FileAccess.Write)
'Retrieve the file contents into a byte array.
Dim myInputBytes(myInputFile.Length - 1) As Byte
myInputFile.Read(myInputBytes, 0, myInputBytes.Length)
'Transform the data in chunks the size of InputBlockSize.
Dim i As Integer = 0
While myInputBytes.Length - i > 4 'myTransform.InputBlockSize
myTransform.TransformBlock(myInputBytes, i, 4, myOutputBytes, 0) 'myTransform.InputBlockSize
i += 4 'myTransform.InputBlockSize
myOutputFile.Write(myOutputBytes, 0, myTransform.OutputBlockSize)
End While
'Transform the final block of data.
myOutputBytes = myTransform.TransformFinalBlock(myInputBytes, i, myInputBytes.Length - i)
myOutputFile.Write(myOutputBytes, 0, myOutputBytes.Length)
'Free up any used resources.
myTransform.Clear()
myInputFile.Close()
myOutputFile.Close()
End Sub 'DecodeFromFile
End Class 'MyMainClass
End Namespace 'ToBase64Transform_Examples
[C#]
using System;
using System.IO;
using System.Security.Cryptography;
namespace ToBase64Transform_Examples
{
class MyMainClass
{
public static void Main()
{
//Insert your file names into this method call.
DecodeFromFile("c:\\encoded.txt", "c:\\roundtrip.txt");
}
public static void DecodeFromFile(string inFileName, string outFileName)
{
FromBase64Transform myTransform = new FromBase64Transform(FromBase64TransformMode.IgnoreWhiteSpaces);
byte[] myOutputBytes = new byte[myTransform.OutputBlockSize];
//Open the input and output files.
FileStream myInputFile = new FileStream(inFileName, FileMode.Open, FileAccess.Read);
FileStream myOutputFile = new FileStream(outFileName, FileMode.Create, FileAccess.Write);
//Retrieve the file contents into a byte array.
byte[] myInputBytes = new byte[myInputFile.Length];
myInputFile.Read(myInputBytes, 0, myInputBytes.Length);
//Transform the data in chunks the size of InputBlockSize.
int i = 0;
while(myInputBytes.Length - i > 4/*myTransform.InputBlockSize*/)
{
myTransform.TransformBlock(myInputBytes, i, 4/*myTransform.InputBlockSize*/, myOutputBytes, 0);
i += 4/*myTransform.InputBlockSize*/;
myOutputFile.Write(myOutputBytes, 0, myTransform.OutputBlockSize);
}
//Transform the final block of data.
myOutputBytes = myTransform.TransformFinalBlock(myInputBytes, i, myInputBytes.Length - i);
myOutputFile.Write(myOutputBytes, 0, myOutputBytes.Length);
//Free up any used resources.
myTransform.Clear();
myInputFile.Close();
myOutputFile.Close();
}
}
}
[C++]
#using <mscorlib.dll>
using namespace System;
using namespace System::IO;
using namespace System::Security::Cryptography;
class MyMainClass
{
public:
static void DecodeFromFile(String *inFileName, String *outFileName)
{
FromBase64Transform * myTransform = new FromBase64Transform(FromBase64TransformMode::IgnoreWhiteSpaces);
Byte myOutputBytes __gc[] = new Byte __gc[myTransform->OutputBlockSize];
//Open the input and output files.
FileStream * myInputFile = new FileStream(inFileName, FileMode::Open, FileAccess::Read);
FileStream * myOutputFile = new FileStream(outFileName, FileMode::Create, FileAccess::Write);
//Retrieve the file contents into a Byte array.
Byte myInputBytes __gc[] = new Byte __gc[myInputFile->Length];
myInputFile->Read(myInputBytes, 0, myInputBytes->Length);
//Transform the data in chunks the size of InputBlockSize.
int i = 0;
while(myInputBytes->Length - i > 4/*myTransform->InputBlockSize*/)
{
myTransform->TransformBlock(myInputBytes, i, 4/*myTransform->InputBlockSize*/, myOutputBytes, 0);
i += 4/*myTransform->InputBlockSize*/;
myOutputFile->Write(myOutputBytes, 0, myTransform->OutputBlockSize);
}
//Transform the final block of data.
myOutputBytes = myTransform->TransformFinalBlock(myInputBytes, i, myInputBytes->Length - i);
myOutputFile->Write(myOutputBytes, 0, myOutputBytes->Length);
//Free up any used resources.
myTransform->Clear();
myInputFile->Close();
myOutputFile->Close();
}
};
int main()
{
MyMainClass * m = new MyMainClass();
//Insert your file names into this method call.
m->DecodeFromFile("c:\\encoded.txt", "c:\\roundtrip.txt");
}
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ
参照
FromBase64Transform クラス | FromBase64Transform メンバ | System.Security.Cryptography 名前空間 | 暗号サービス