یلدا ادامه داره... ❤️ ۴۰ درصد تخفیف همه دورهها
استفاده از تخفیفهاسلام وقت بخیر. چطور میتونم فایل ویدئویی رو از طریق encrypt لاراول، رمزگذاری کنم؟ هیچ tutorial درستی متاسفانه یافت نکردم
باید فایل رو fopen کنم و داده هاشو دسته به دسته encrypt کنم یا راه بهتری هم هست؟
همچنین چطور میتونم decrypt کنم؟
ممنون میشم راهنماییم کنید.
@mhonarvar18
سلام دوست عزیز من برای یک پروژه ای همین کارو انجام دادم با وسواس و تحقیق زیاد به این نتیجه رسیدم که هم سرعتش بالا باشه هم امنیتش خوب باشه و از openssl استفاده کردم:
//encrypt
public function encryptData(Request $request)
{
$file = $request->file('file');
$fileName = now()->timestamp . "." . $file->getClientOriginalExtension();
$cipher = 'aes-128-ctr';
$ivlen = openssl_cipher_iv_length($cipher);
$iv = openssl_random_pseudo_bytes($ivlen);
$key = env('APP_KEY');
$encrypted = openssl_encrypt(file_get_contents($file->getRealPath()), $cipher, $key, OPENSSL_RAW_DATA, $iv);
$content = base64_encode($iv . $encrypted);
file_put_contents('/uploads/files/${filename}', $content);
}
//decrypt
public function decryptData($filename)
{
$cipher = 'aes-128-ctr';
$ivlen = openssl_cipher_iv_length($cipher);
$filePath = public_path("/uploads/{$filename}");
$data = base64_decode(file_get_contents($filePath));
$iv = substr($data, 0, $ivlen);
$encData = substr($data, $ivlen);
$key = env('APP_KEY');
$decrypted = openssl_decrypt($encData, $cipher, $key, OPENSSL_RAW_DATA, $iv);
$temp = tempnam(sys_get_temp_dir(), 'TMP_');
file_put_contents($temp, $decrypted);
return response()->json([
'data' => [
'file' => $temp
]
]);
}
@eng.tehrani
سلام ممنون از راهنماییتون. دادهء رمزگذاری شده رو ک داخل $content ریختیم، چطور و کجا ازش استفاده میکنیم؟
مثلا من یک فایل ویدئویی آپلود کردم و حالا با استفاده از این متد محتویاتشو رمزگذاری کردم. وقتی فایل رو move میکنم به مسیر دلخواهم فایل رمزگذاری نشده چون باز میشه. چطور اون $content رو به فایل ربط بدم؟
درود...
لینک زیر:
https://www.codeproject.com/Questions/695141/protecting-videos-from-being-stolen-in-browser
آموزش انکریپت و دیکریپت کردن فایل در یوتیوب موجود است!
@mhonarvar18
معذرت میخوام یادم رفت انتهای کد رو برای کار شما سفارشی سازی کنم شما با دستور file_put_contents میتونید اون داده رو هر جا خواستین ذخیره کنید
پست قبلیمو براتون اصلاح کردم
@eng.tehrani
سپاس فراوان از شما. یکم جستجو کردم اون قسمت رو هم حل کردم. متشکرم از راهنمایی ارزشمندتون _
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟