幅広い選択肢をアプリケーションに提供しています。公開鍵/秘密鍵の鍵ペアを利用することができ、柔軟性があるといえます。アプリケーションに鍵を管理させる手間も生じさせているといえます。鍵ペアならばそれを鍵コンテナに格納しなければなりません。複雑な手順を踏むことなく暗号化を行うことができます。DPAPI(特にCryptProtectData)による暗号化は、マスターキーという存在に大きく依存しています。各ユーザーのユーザープロファイルに予め保存されています。一時的なセッション鍵を作ることであり、このセッション鍵を使って暗号化が行われています。それはセッション鍵を作成するために必要なデータに過ぎません。復号化時にはこの16バイトとユーザープロファイルに格納されたマスターキーが参照されます。90日毎に新しいマスターキーがシステムによって作成されることになっています。複合化の際にはこのIDを基に参照するマスターキーを決定します。暗号化時のユーザーに限定されることです。他のコンピュータに漏洩したとしても、そのデータは複合化することができません。別のユーザーや他のコンピュータはこれを参照することができないからです。マスターキーが漏洩された場合でも、データを複合化することはできません。無条件にデータを複合化できるということも意味しています。これはあまり推奨される方法ではありません。エントロピーという情報が存在すれば、アプリケーションはそれを管理する必要が生じてしまうからです。DPAPIはデータを暗号化するだけで、安全な格納場所までは提供していません。