Mohammad Honarvar
6 سال پیش توسط Mohammad Honarvar مطرح شد
6 پاسخ

رمزگذاری فایل ویدئویی با encrypt

سلام وقت بخیر. چطور میتونم فایل ویدئویی رو از طریق encrypt لاراول، رمزگذاری کنم؟ هیچ tutorial درستی متاسفانه یافت نکردم
باید فایل رو fopen کنم و داده هاشو دسته به دسته encrypt کنم یا راه بهتری هم هست؟
همچنین چطور میتونم decrypt کنم؟
ممنون میشم راهنماییم کنید.


ثبت پرسش جدید
مهدی طهرانی
تخصص : cloud architect
@mtehrani 6 سال پیش آپدیت شد
1

@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
            ]
        ]);
    }

ایمان آل طه
@iman.aletaha 6 سال پیش مطرح شد
0

از این میتونید استفاده کنید

https://github.com/jeskew/php-encrypted-streams


Mohammad Honarvar
تخصص : Senior Backend Developer
@mhonarvar18 6 سال پیش مطرح شد
0

@eng.tehrani
سلام ممنون از راهنماییتون. دادهء رمزگذاری شده رو ک داخل $content ریختیم، چطور و کجا ازش استفاده میکنیم؟
مثلا من یک فایل ویدئویی آپلود کردم و حالا با استفاده از این متد محتویاتشو رمزگذاری کردم. وقتی فایل رو move میکنم به مسیر دلخواهم فایل رمزگذاری نشده چون باز میشه. چطور اون $content رو به فایل ربط بدم؟


رایموند
تخصص : مختصص وردپرس - برنامه نویس لار...
@Raymond 6 سال پیش آپدیت شد
0

درود...
لینک زیر:
https://www.codeproject.com/Questions/695141/protecting-videos-from-being-stolen-in-browser
آموزش انکریپت و دیکریپت کردن فایل در یوتیوب موجود است!


مهدی طهرانی
تخصص : cloud architect
@mtehrani 6 سال پیش آپدیت شد
1

@mhonarvar18
معذرت میخوام یادم رفت انتهای کد رو برای کار شما سفارشی سازی کنم شما با دستور file_put_contents میتونید اون داده رو هر جا خواستین ذخیره کنید
پست قبلیمو براتون اصلاح کردم


Mohammad Honarvar
تخصص : Senior Backend Developer
@mhonarvar18 6 سال پیش مطرح شد
1

@eng.tehrani
سپاس فراوان از شما. یکم جستجو کردم اون قسمت رو هم حل کردم. متشکرم از راهنمایی ارزشمندتون _


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام