I have found a way to decrypt it. But without validation
Example code :
<script src="https://cdn.jsdelivr.net/npm/[email protected]/base64.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/rollups/aes.js"></script>
<script>
function decrypt(){
// key set on the server when encrypt using Laravel encrypter
var key = "ls1KlnDpyl2ZJT0vdNX1tNygAftBlgah";
// response from server
var encrypted = "eyJpdiI6IjN2UmswOFVOd0lncHh4cCszbThnc1E9PSIsInZhbHVlIjoiMllmZ0dHTCtmejg0VFV1dVlFZVNhQT09IiwibWFjIjoiYzliODBkYTUzMDlmODEwMjJlY2Y2ZDhmN2UwM2NkN2FjYTc3OThjOTA3NTAyYTIxMDM3MjE5NDY2NTlhY2RjMSJ9";
var encrypted_json = JSON.parse(Base64.decode(encrypted));
// {"iv":"3vRk08UNwIgpxxp+3m8gsQ==","value":"2YfgGGL+fz84TUuuYEeSaA==","mac":"c9b80da5309f81022ecf6d8f7e03cd7aca7798c907502a2103721946659acdc1"}
var decrypted = CryptoJS.AES.decrypt(encrypted_json.value, CryptoJS.enc.Base64.parse(Base64.encode(key)),{
iv: CryptoJS.enc.Base64.parse(encrypted_json.iv),
mode: CryptoJS.mode.CBC
});
console.log('decripted : ' + decrypted.toString(CryptoJS.enc.Utf8));
}
</script>
And now, how to encrypt in javascript and i can read it in server with Laravel encrypter ?