> For the complete documentation index, see [llms.txt](https://docs.faspay.co.id/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.faspay.co.id/getting-started/faspay-sendme/authentication/authorization.md).

# Authorization

This part will explain how Faspay account use encrypt method AES 256 for authorization.

Example

* String data that will be encrypted -> **$plaintext = "APP\_KEY:APP\_SECRET";**

* Algorithm used for encryption -> **$algo = "aes256";**

* The Key used for encryption -> **faspay\_secret** (generated by Faspay) Step for encrypted **the key** :

  1. Hashing key uses the sha 256 algorithm and its output is raw binary data.
  2. Then, taken 32 characters from the front. Ex : $password = substr(hash('sha256', $key, true), 0, 32);

* **IV** for encryption (generated by faspay) Step for encrypted IV :

  1. Hashing IV uses the md5 algorithm.
  2. Then taken 16 characters from behind. Ex : $iv = substr(md5($key.self::$iv), -16);

* Encryption using openssl by including **the plaintext, algo, password and iv** for the encryption process, and encryption output is binary raw data. $encrypted = openssl\_encrypt($plaintext, $algo, $password, OPENSSL\_RAW\_DATA, $iv);

* the encryption results are re-encrypted using the base64 encode method to make lowercase hexits. **$base64 = base64\_encode($encrypted);**
