| 内容 |
BASE64/BASE32/BASE32HEX/BASE85Adobe/BASE85RFC/BASE91/BASE36/Base62/Base63 エンコード/uuencode を行う。 enBase64/enBase64BinFU は、Fileパス/URL に安全な Base64 エンコード処理を行う ****_32() 関数は、エンコード単位が 32bit 単位。"_32"が付いていないのは、全体を一つの巨大な整数としてエンコードを実施 対象データは、文字列 enBase64Bin(),enBase32Bin(),enBase32HexBin(),enBase85AdobeBin_32(),enBase85RFCBin_32(),enBase91Bin_32(),enBase36Bin_32(),enBase62Bin(),enBase63Bin(), UUencodeRawBin() の場合は文字列でなくてもよい |
| 引数 | エンコードしたい文字列 enBase64Bin(),enBase32Bin(),enBase32HexBin(),enBase85AdobeBin_32(),enBase85RFCBin_32(),enBase91Bin_32(),enBase36Bin_32(),enBase62Bin(),enBase63Bin(),UUencodeRawBin() の場合は文字列でなくてもよい |
| 戻り値 | エンコードされた文字列 |
| IsError 値 | |
| 成功 | 0 |
| 失敗 | 負数 |
| サンプルコード(WSH & VBScript) | |
|
Set Obj = WScript.CreateObject("ComBase64.Base64Func") ret = Obj.enBase64("文字列") Set Obj = Nothing |
|
| 内容 |
BASE64/BASE32/BASE32HEX/BASE85Adobe/BASE85RFC/BASE91/BASE36/Base62/Base63 デコード/uudecode を行う。 ****_32() 関数は、エンコード単位が 32bit 単位。"_32"が付いていないのは、全体を一つの巨大な整数としてエンコードを実施 対象データは、文字列 deBase64Bin(), deBase32Bin(), deBase32HexBin(), deBase85AdobeBin_32(), deBase85RFCBin_32(), deBase91Bin_32(), deBase36Bin_32(), deBase62Bin(), deBase63Bin(), UUdecodeRawBin() は出力が文字列とは限らない。 |
| 引数 | デコードしたい文字列 |
| 戻り値 | デコードされた文字列 deBase64Bin(),deBase32Bin(),deBase32HexBin(),deBase85AdobeBin_32(),deBase85RFCBin_32(),deBase91Bin_32(),deBase36Bin_32(),deBase62Bin(),deBase63Bin(),UUdecodeRawBin() の場合は文字列が返るとは限らない デコードできない場合(書式不正など)は、Empty が返る |
| IsError 値 | |
| 成功 | 0 |
| 失敗 | 負数 |
| サンプルコード(WSH & VBScript) | |
|
Set Obj = WScript.CreateObject("ComBase64.Base64Func") ret = Obj.deBase64("文字列") If IsEmpty(ret) = False Then Set Obj = Nothing |
|
| 内容 |
入力ファイルからデータを読み取り、Base64 エンコード/デコード または uuencode/uudecode を行い結果を出力ファイルに出力する。 FileUUencode() は、データを単純に uuencode/uudecode しているので、UNIX 系の uuencode/uudecode コマンドとは互換性がありません。 つまり、エンコードした内容をデコードしても元の内容と同じとは限りません。 uuencode/uudecode の特徴ですので、詳細はこちら |
| 引数 |
入力ファイル : 入力ファイル名(絶対パスが無難) 出力ファイル : 出力ファイル名(絶対パスが無難) モード : 0 : エンコード 1 : デコード |
| 戻り値 | なし |
| IsError 値 | |
| 成功 | 0 |
| 失敗 | 負数 |
| サンプルコード(WSH & VBScript) | |
|
Set Obj = WScript.CreateObject("ComBase64.Base64Func") Obj.deBase64 "c:\boot.ini","c:\boot.base64",1 Set Obj = Nothing |
|
| 内容 | 直前のメソッドが成功したかどうか。 |
| 引数 | なし |
| 戻り値 |
直前のメソッドが成功したかどうか 下記のエラー一覧を参照 |
| サンプルコード(WSH & VBScript) | |
|
Set Obj = WScript.CreateObject("ComBase64.Base64Func") ret = Obj.deBase64("文字列") chk = Obj.IsError() If chk = 0 Then WScript.Echo デコードは成功しました Else WScript.Echo デコードは失敗しました End If Set Obj = Nothing |
|
| 内容 |
UNIX 系の uuencode/uudecode の符号化処理の部分だけを実装化した関数。 これを用いて、ヘッダとフッタを付加してファイルに書き出すことで、uuencode/uudecode コマンドと互換性のある関数を作ることができます。 |
| 引数 |
エンコード/デコードしたい文字列/バイト列 |
| 戻り値 | エンコード/デコードされた文字列/バイト列 |
| IsError 値 | |
| 成功 | 0 |
| 失敗 | 負数 |
| サンプルコード(WSH & VBScript) | |
|
Set Obj = WScript.CreateObject("ComBase64.Base64Func") Set FSObj = WScript.CreateObject("Scripting.FileSystemObject") Set FileObj = FSObj.OpenTextFile("入力ファイル") str = FileObj.ReadAll FileObj.Close ret = Obj.UUEncode(str) Set FileObj = FSObj.CreateTextFile(""出力ファイル") FileObj.WriteLine "begin 666 入力ファイル" FileObj.Wite str FileObj.WriteLine "`" FileObj.WriteLine "end" FileObj.Close Set FileObj = Nothing Set FSObj = Nothing Set Obj = Nothing |
|
| ただし、OpenTextFile メソッドは、0x00 までしか読み取らないよ | |
| 内容 |
RFC1924 にある IPv6 アドレス(16Byte[128Bit]) を Base85 エンコードする 入力データは、16Byteのバイト列(enBase85IPv6)、または20ByteのBase85文字列(deBase85IPv6) しか想定していない |
| 引数 | 16Byteのバイト列(enBase85IPv6)、または20ByteのBase85文字列(deBase85IPv6) |
| 戻り値 | エンコードされた文字列(20Byte)または、デコードされたバイト列(16Byte) |
| #include "sBase64.h" |
| メソッド一覧 |
|---|
| signed long SInUUEncode(unsigned char *,int,unsigned long) |
| signed long SInBase64(unsigned char *,int,unsigned long) |
| signed long SInBase64FU(unsigned char *,int,unsigned long) |
|
第一引数のメモリポインタから、第三引数分のデータを BASE64 エン/デ・コード、または uuencode/uudecode を行う。 実際の処理は、第一引数のデータを CSBase64 クラス内の myMemIn ポインタにコピー後、SInBase64Main() メソッドに処理は委ねられる。 SInBase64FU() は、Fileパス/URLに安全な Base64 エンコードを実施する
|
| signed long SInBase64Main(int,unsigned long,int) |
CSBase64 クラス内の myMemIn ポインタのデータを Base64 エン/デ・コード処理を行う。
|
| SBase32Decode(unsigned long,int) SBase32Encode(unsigned long,int) |
|
Base32/Base32Hex エン/デ・コードを行う。 対象は、CSBase64 クラス内の myMemIn ポインタ。 出力先は、CSBase64 クラス内の myMemOut ポインタ。 第一引数は、myMemInポインタで確保したエンコード対象のデータサイズ 第二引数は、0:Base32, 1:Base32Hex |
| signed long SInUUEncodeFile(unsigned char *,unsigned char *,int) |
| signed long SInBase64File(unsigned char *,unsigned char *,int) |
| signed long SInBase64FileFU(unsigned char *,unsigned char *,int) |
|
| unsigned long SenBase64Count(unsigned long); |
文字サイズを指定し、そのサイズのデータを BASE64 エンコード後の文字サイズを返す
|
| unsigned long SdeBase64Count(unsigned char *); |
|
第一引数に指定されたポインタの文字列を BASE64 復号化した場合、何バイトになるかを戻す 単純に長さを3/4倍(通常、呼ばれる場合は小数点がでるはずがないので、小数点が出た場合、実装依存)して、最後の文字列が "==" なら2を減算、最後の文字だけが "=" なら1を減算しているだけ
|
| signed long SdeBase64Check(unsigned char *inStr); |
|
第一引数に指定されたポインタの文字列が BASE64 符号化として妥当な文字列であるかどうかをチェックする。 チェック項目
|
| unsigned char ** GetMyMemInPP(void) |
| CSBase64 クラス内の myMemIn ポインタのアドレスを返す。 |
| unsigned char * GetMyMemInP(void) |
| CSBase64 クラス内の myMemIn ポインタを返す。 |
| unsigned char * GetMyMemOutP(void) |
| CSBase64 クラス内の myMemOut ポインタを返す。 |
| unsigned long SuuencodeRaw(unsigned char *,unsigned long) |
|
UNIX 系の uuencode/uudecode の一行あたりのエンコード処理を行う。 エンコードされた結果の最初の 1byte は、データの長さを示す。 よって、63文字以上の入力データは、正常にエンコードできない。 |
| unsigned long SuudecodeRaw(unsigned char *) |
|
UNIX 系の uuencode/uudecode エンコードされた一行をデコードする。 データの最初の文字を、データ長としてデコードし、2byte 目以降をデータとして、uudecode を行う。 2byte 目以降のデータ長さは、最初の文字をデコードした値がそれである。 よって、63文字以上の入力データは、正常にデコードできない。 |
| unsigned long SuuencodeLikeFile(unsigned char *,unsigned long) |
|
UNIX 系の uuencode/uudecode の変換処理だけ行う。 入力データを 45byte ずつ区切り、SuuencodeRaw() 関数に渡し、エンコード処理を実施する。 SuuencodeRaw() 関数間には、CrLf を付加する。 この関数の出力結果にヘッダ、フッタを付加することで、UNIX 系の uuencode/uudecode コマンドとの互換性のある関数を実装することも可能 |
| unsigned long SuudecodeLikeFile(unsigned char *) |
|
UNIX 系の uuencode/uudecode の変換処理だけ行うデコード版 入力データを CrLf ごとにくぎり SuudecodeRaw() 関数に渡す |
| エラー一覧 ComBase64.dll,sBase64.dll 共通 |
|
|---|---|
| 0 以上 | 正常終了 |
| -1 | 予期しないエラーです |
| -2 | メモリが確保できませんでした |
| -3 | ファイルがオープンできません (ファイル読み込みエラー) |
| -4 | ファイル内容が読み込めませんでした (ファイル読み込みエラー) |
| -5 | ファイルがオープンできません (ファイル書き込みエラー) |
| -6 | ファイルが書き込めませんでした (ファイル書き込みエラー) |
| -7 | 引数の指定が間違っています |
| -100 | デコードすべき文字列が 4 の倍数ではない (BASE64 化された文字列の長さは、4 の倍数です) |
| -101 | BASE64 デコードでは正しくない文字列である |