رفتن به مطلب

تبدیل رشته به آرایه ای از بایت ها با استاندارد UTF8


fun_code

ارسال‌های توصیه شده

سلام

چطور میشه در PHP رشته ای به آرایه ای از بایت ها با انکود UTF8 تبدیل کرد ؟

خیلی گشتم...

اما پس از تست به نتیجه مورد نظر نرسیدم.

ممنون میشم راهنمایی بفرمایید.

با سپاس

لینک ارسال
به اشتراک گذاری در سایت های دیگر

کد rc4 در لینک زیر همین کار رو میکنه

یه بررسی بکنید. میتونین مثل اون بسازید و یا از خود اون استفاده کنید.

«موفق باشید.»

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 2 ساعت قبل، امین مهدوی گفته است :

کد rc4 در لینک زیر همین کار رو میکنه

یه بررسی بکنید. میتونین مثل اون بسازید و یا از خود اون استفاده کنید.

«موفق باشید.»

بسیار متشکرم

فقط یه مورد کوچک...

برای ارسال دیتا به سرور از متغیری از نوع AsyncStreams استفاده میکنم.

یکی از دستورات ارسال دیتا در این نوع داده ای Write هست.

پارامتری که دریافت میکنه آرایه ای از بایت ها است...

اگر طبق کدی که در تاپیک بالا وجود دارد عمل کنم ، دیتا ابتدا باید RC4 و سپس Base64 شود و سپس به سرور ارسال کنم ... (تا در سرور ابتدا از Base64 و سپس RC4 دیکد شود.)

این در حالی است که اگر دیتا را پس از RC4 به Base64 کد کنم ، خروجی رشته است و قابلیت ارسال با دستور Write رو نداره !

اگر ابتدا Base64 کنم و سپس RC4 مشکلی نداره ؟ (چون خروجی RC4 آرایه ای از بایت و قابل ارسال به سرور است)

لینک ارسال
به اشتراک گذاری در سایت های دیگر

شما کد RC4 لینک بالا رو به این شکل تغیر بدید

    public function encrypt($data) 
    {
        $t=0; $o=0; $i=0; $j = 0; $l =strlen($data);
        $out =  array();
        for($c=0; $c<$l; $c++){
            $i = ($i+1) % 256;
            $j = ($j+$this->box[$i]) % 256;
 
            $t = $this->box[$j];
            $this->box[$j] = $this->box[$i];
            $this->box[$i] = $t;
 
            $o = $this->box[($this->box[$i] + $this->box[$j]) % 256];
            $out[$c] =(ord($data[$c]) ^ $o);
        }
        return  $out;
    }

فقط همین متد رو تغیر بدید.

به  این ترتیب خروجی آرایه بایت تولید می کنه نه رشته

همین

«موفق باشید.»

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 34 دقیقه قبل، امین مهدوی گفته است :

فقط همین متد رو تغیر بدید.

ممنونم

ببخشید زیاد وقتتون و میگیرم... اما برنامه نویس خوبی مثل شما که بدون منت پاسخ بدهد کم پیدا میشه :53:

اما با این حال سمت کلاینت اگر بخوام ابتدا RC4 و سپس Base64 کنم ، بازم خروجی Base64 رشته است...! درسته ؟

چطور با دستور write ارسالش کنم ؟

آهان

یعنی شما میفرمایید که اصلا Base64 نکنم ؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

کتابخونه irUtility خروجی آرایه بایت میده

Base64 واسه مواقعی که بخوای Rc4 رو با HTTP به صورت معمول بفرستی استفاده میشه

شما که لازم ندارید .که بحثی نیست

Dim ir As irRC4
Dim b() As Byte
b=ir.make("text","Password")

«موفق باشید.»

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 18 دقیقه قبل، امین مهدوی گفته است :

 

Base64 واسه مواقعی که بخوای Rc4 رو با HTTP به صورت معمول بفرستی استفاده میشه

آهان

حالا متوجه شدم.

نمیدونستم نیازی نیست به Base24 تبدیل بشه... همش درگیر همین مورد بودم.

خیلی خیلی ممنونم

این تاب encrypt هم به RC4 کد میکنه و هم دیکد میکنه ؟

هر دو وظیفه رو انجام میده ؟

چون دیدم که در زمان استفاده برای کد و دیکد کردن از تابع encrypt استفاده کردید...

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • 2 سال بعد...
در در 1395/10/18, 03:57:21، fun_code گفته است :

سلام

چطور میشه در PHP رشته ای به آرایه ای از بایت ها با انکود UTF8 تبدیل کرد ؟

خیلی گشتم...

اما پس از تست به نتیجه مورد نظر نرسیدم.

ممنون میشم راهنمایی بفرمایید.

با سپاس

سلام و وقت بخیر

unpack('C*', 'here your string');

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 11 دقیقه قبل، ilbeygi.m گفته است :

سلام و وقت بخیر


unpack('C*', 'here your string');

 

ممنون اما این پست مربوط به بیش از 2 سال گذشته است و همون زمان ها مشکلم برطرف شد. :pardon:

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...