This module provides a function to encrypt passwords for the enc_password
parameter used during Instagram's web login process. The encryption process involves several steps including AES-GCM encryption and formatting the encrypted data in a specific way that Instagram's servers expect.
To install the module, use npm:
npm install instagram-password-encryption
The encryptPassword
function encrypts a given password using a combination of provided parameters and internal logic.
encryptPassword(password, [version], [keyID], [publicKey])
password
(String): The password to be encrypted.version
(String): The version of the encryption algorithm, default is 10
.keyID
(String): The key identifier, default is 143
.publicKey
(String): The public key used for encryption, default is f219393f2381eab7abd6d20130bfa274cc4ffc8b67988da60abeffc88c1b9b15
.A Promise that resolves to the encrypted password string.
The encryptPassword
function uses AES-GCM for encryption. It involves several steps including key generation, encryption, and formatting the result. The function accepts a password and optional parameters for version, keyID, and publicKey. The version, keyID, and publicKey are subject to change and can typically be found on Instagram's login page's source code during updates.
const { encryptPassword } = require('instagram-password-encryption');
encryptPassword('your-password-here').then(encryptedPassword => {
console.log(encryptedPassword);
}).catch(error => {
console.error(error);
});
The provided default values for version
, keyID
, and publicKey
are examples. In a real-world scenario, you should retrieve the current values from Instagram's login page, as they may change periodically.
This project is licensed under the MIT License. See the LICENSE file for more details.