2016-12-30 16:32:25 +01:00
---
2017-01-19 23:02:27 +01:00
title: account.setPassword
2018-03-23 17:44:33 +01:00
description: Set 2FA password
2016-12-30 16:32:25 +01:00
---
2017-01-19 23:02:27 +01:00
## Method: account.setPassword
2016-12-30 16:32:25 +01:00
[Back to methods index ](index.md )
2018-03-23 17:44:33 +01:00
Set 2FA password
2016-12-30 16:32:25 +01:00
### Parameters:
2018-03-23 17:44:33 +01:00
| Name | Type | Required | Description |
|----------|---------------|----------|-------------|
2018-03-27 14:41:50 +02:00
|current\_password\_hash|[bytes](../types/bytes.md) | Yes|Use only if you have set a 2FA password: `$current_salt = $MadelineProto->account->getPassword()['current_salt']; $current_password_hash = hash('sha256', $current_salt.$password.$current_salt, true);` |
|new\_salt|[bytes](../types/bytes.md) | Yes|New salt|
|new\_password\_hash|[bytes](../types/bytes.md) | Yes|`hash('sha256', $new_salt.$new_password.$new_salt, true)`|
|hint|[string](../types/string.md) | Yes|Hint|
2016-12-30 16:32:25 +01:00
2017-01-02 19:50:37 +01:00
### Return type: [Bool](../types/Bool.md)
2016-12-30 16:32:25 +01:00
2017-08-28 12:44:50 +02:00
### Can bots use this method: **YES**
2018-03-20 19:57:36 +01:00
### MadelineProto Example:
2016-12-30 16:32:25 +01:00
```
Documentation rework (#349)
* Documentation rework
* Apply fixes from StyleCI
* Documentation fixes
* Login as bot through web/cli API, allow using invite links in joinChannel, full invite links in importChatInvite and checkChatInvite, non-invite links in importChatInvite
* Apply fixes from StyleCI
* Logging fixes
* Build docs
* Add methods to modify start template, bugfix to logging and keyboard conversion
* Add TL documentator
* Document MTProto methods
* Documenting methods...
* 7% documented
* Bugfixes
* Update docs
* Update docs
* Simplify file management
* Implement automatic object conversion for media, and more awesome stuff
* Implement automatic object conversion for media, and more awesome stuff
* Implement event update handler and file upload/download callback
* Auto-detect mime type, duration, width and height of media
* Update docs
* Document new file functions
* Fix links
* Fix links
* Update bot.php to use event loop
* Implement webhook update handler and forking in main loop
* Build docs
* Better docs
* Fixes to secret chats
* Almost finished updating docs
* Bugfixes, implemented infinite loop for loop() method, almost finished docs
* Finish writing docs
* Add automatic documentation builder script
* Finished writing docs
2018-03-20 12:48:05 +01:00
if (!file_exists('madeline.php')) {
copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
2016-12-30 16:32:25 +01:00
}
Documentation rework (#349)
* Documentation rework
* Apply fixes from StyleCI
* Documentation fixes
* Login as bot through web/cli API, allow using invite links in joinChannel, full invite links in importChatInvite and checkChatInvite, non-invite links in importChatInvite
* Apply fixes from StyleCI
* Logging fixes
* Build docs
* Add methods to modify start template, bugfix to logging and keyboard conversion
* Add TL documentator
* Document MTProto methods
* Documenting methods...
* 7% documented
* Bugfixes
* Update docs
* Update docs
* Simplify file management
* Implement automatic object conversion for media, and more awesome stuff
* Implement automatic object conversion for media, and more awesome stuff
* Implement event update handler and file upload/download callback
* Auto-detect mime type, duration, width and height of media
* Update docs
* Document new file functions
* Fix links
* Fix links
* Update bot.php to use event loop
* Implement webhook update handler and forking in main loop
* Build docs
* Better docs
* Fixes to secret chats
* Almost finished updating docs
* Bugfixes, implemented infinite loop for loop() method, almost finished docs
* Finish writing docs
* Add automatic documentation builder script
* Finished writing docs
2018-03-20 12:48:05 +01:00
include 'madeline.php';
2018-03-23 17:48:12 +01:00
$MadelineProto = new \danog\MadelineProto\API('session.madeline');
Documentation rework (#349)
* Documentation rework
* Apply fixes from StyleCI
* Documentation fixes
* Login as bot through web/cli API, allow using invite links in joinChannel, full invite links in importChatInvite and checkChatInvite, non-invite links in importChatInvite
* Apply fixes from StyleCI
* Logging fixes
* Build docs
* Add methods to modify start template, bugfix to logging and keyboard conversion
* Add TL documentator
* Document MTProto methods
* Documenting methods...
* 7% documented
* Bugfixes
* Update docs
* Update docs
* Simplify file management
* Implement automatic object conversion for media, and more awesome stuff
* Implement automatic object conversion for media, and more awesome stuff
* Implement event update handler and file upload/download callback
* Auto-detect mime type, duration, width and height of media
* Update docs
* Document new file functions
* Fix links
* Fix links
* Update bot.php to use event loop
* Implement webhook update handler and forking in main loop
* Build docs
* Better docs
* Fixes to secret chats
* Almost finished updating docs
* Bugfixes, implemented infinite loop for loop() method, almost finished docs
* Finish writing docs
* Add automatic documentation builder script
* Finished writing docs
2018-03-20 12:48:05 +01:00
$MadelineProto->start();
2016-12-30 16:32:25 +01:00
2017-07-23 16:33:46 +02:00
$Bool = $MadelineProto->account->setPassword(['current_password_hash' => 'bytes', 'new_salt' => 'bytes', 'new_password_hash' => 'bytes', 'hint' => 'string', ]);
2017-02-13 04:33:06 +01:00
```
2017-03-11 19:54:51 +01:00
2018-03-20 19:57:36 +01:00
### [PWRTelegram HTTP API](https://pwrtelegram.xyz) example (NOT FOR MadelineProto):
2017-07-23 16:11:02 +02:00
### As a bot:
POST/GET to `https://api.pwrtelegram.xyz/botTOKEN/madeline`
Parameters:
* method - account.setPassword
2017-07-23 16:40:54 +02:00
* params - `{"current_password_hash": "bytes", "new_salt": "bytes", "new_password_hash": "bytes", "hint": "string", }`
2017-07-23 16:11:02 +02:00
2017-07-23 16:34:36 +02:00
2017-07-23 16:11:02 +02:00
### As a user:
POST/GET to `https://api.pwrtelegram.xyz/userTOKEN/account.setPassword`
Parameters:
current_password_hash - Json encoded bytes
2017-08-20 19:09:52 +02:00
2017-07-23 16:11:02 +02:00
new_salt - Json encoded bytes
2017-08-20 19:09:52 +02:00
2017-07-23 16:11:02 +02:00
new_password_hash - Json encoded bytes
2017-08-20 19:09:52 +02:00
2017-07-23 16:11:02 +02:00
hint - Json encoded string
2017-07-23 16:40:54 +02:00
2017-07-23 16:11:02 +02:00
2017-08-20 19:09:52 +02:00
2017-03-11 19:54:51 +01:00
Or, if you're into Lua:
```
2017-07-23 16:33:46 +02:00
Bool = account.setPassword({current_password_hash='bytes', new_salt='bytes', new_password_hash='bytes', hint='string', })
2017-03-11 19:54:51 +01:00
```