【初心者歓迎】C/C++室 Ver.25【環境依存OK】
■ このスレッドは過去ログ倉庫に格納されています
0262デフォルトの名無しさん
2006/03/05(日) 19:30:46おそらくだけど・・・
CryptEncryptはpbDataをdwDataLen分だけ暗号化するんだけど、
そうするとこの場合は文字列終端の\0まで含まれちゃう。
pbDataを初期化している場合はpdData[dwDataLen+1] が\0だから、一応ヌルターミネイト文字列になるんだけど、
初期化されてない場合は\0が無いので、その後のstrlenで落ちてしまうんじゃないかな?
サンプルだとpbDataはたいてい初期化されてるね。
で、この場合の解決策は
1) 暗号化するデータ長に+1を足さない
2) pdDataを事前に初期化(pdData[dwDataLen+1]=\0ならOK)する
のどちらかがいいと思う。
■ このスレッドは過去ログ倉庫に格納されています