سلام دوستان
ما یه وبسرویس با لاراول ایجاد کردیم که از پکیج Passport هم استفاده میکنیم که این وبسرویس به یه اپلیکیشن سرویس میده
حالا میخوایم این تبادل اطلاعات به شکل ساده جی سونی نباشه بلکه در کل ریسپانسها تبادل اطلاعات امن تر اتفاق بیفته ، یعنی کلیه ریسپانسها با یه الگوریتمی رمزنگاری بشن که بتونیم در سمت اندروئید هم رمزگشایی کنیم
لطفا دوستانی که تجربه دارن یه راهنمایی بکنید
@mehdi539
سلام.
قاعدتا امنیت رو همون passport با Auth تامین میکنه اما اگه می خواهید که داده هاتون رو رمز نگاری کنید، باید خودتون یک الگوریتم بنویسید که داده هاتون رو انکود کنه و از اون طرف هم بتونه همون رو دیکود کنه.
@mohsenbostan @hesammousavi عزیز
میشه با مثالی توضیح بدید
امکان خود لاراول :
Crypt::encrypt($result);
کلیدی نمیگره ؟
چون برنامه نویس سمت اندرویید دو تا کلید رمزنگاری با الگوریتم AES رو فرستاده که باید ریسپانس رو با اونا رمز کنم و بفرستم
iv
key
اینا در لاراول کجا باید وارد بشن
@mehdi539
منظور از انکود همون رمزنگاریه.
Encryption فقط در خود لاراول کار میکنه یعنی شما نمی تونید سمت اندروید اون رو دیکود کنید.
بهتره که یک الگوریتم بسازید که در هر زبانی قابل استفاده باشه و بتونید باهاش دیتا رو انکد و دیکود کنید.
from pyDes import *
def encode(data,password):
k = des(password, CBC, "\0\0\0\0\0\0\0\0", pad=None, padmode=PAD_PKCS5)
d = k.encrypt(data)
return d
def decode(data,password):
k = des(password, CBC, "\0\0\0\0\0\0\0\0", pad=None, padmode=PAD_PKCS5)
d = k.decrypt(data)
return d
x = encode('John Doe', 'mypass12')
y = decode(x,'mypass12')
print x
print y
خروجی بالا :
³.\Þ\åS¾+æÅ`;Ê
John Doe
<?php
define("ENCRYPTION_KEY", "!@#$%^&*");
$string = "This is the original data string!";
echo $encrypted = encrypt($string, ENCRYPTION_KEY);
echo "<br />";
echo $decrypted = decrypt($encrypted, ENCRYPTION_KEY);
/**
* Returns an encrypted & utf8-encoded
*/
function encrypt($pure_string, $encryption_key) {
$iv_size = mcrypt_get_iv_size(MCRYPT_BLOWFISH, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$encrypted_string = mcrypt_encrypt(MCRYPT_BLOWFISH, $encryption_key, utf8_encode($pure_string), MCRYPT_MODE_ECB, $iv);
return $encrypted_string;
}
/**
* Returns decrypted original string
*/
function decrypt($encrypted_string, $encryption_key) {
$iv_size = mcrypt_get_iv_size(MCRYPT_BLOWFISH, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$decrypted_string = mcrypt_decrypt(MCRYPT_BLOWFISH, $encryption_key, $encrypted_string, MCRYPT_MODE_ECB, $iv);
return $decrypted_string;
}
?>
@mohsenbostan عزیز
این دو تا تابع که توابع توکار خود php هستن ، درست ولی بحث اینجاست که این توابع مقدار iv رو خودشون تولید میکنن و من نمیتونم بصورت پارمتری بهش پاس بدم
مثلا الان چطور میشه متن رمز شده زیر رو بازگشایی کرد :
result: Fx2lYb0yrI+oho2RULQ=
iv: 1234567890123456
key: 1234567890123456
توسط برنامه نویس اندروئید به طریقه زیر رمز شده :
Encrypt: AES/CTR/NoPadding
Encode: Base64
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟