Alfabenin için PHP ve Mcrypt sadece kriptalarının?

1 Cevap php

Aşağıda benim şimdiki şifreleme işlevidir.

define('ENCRYPT_KEY', 'ldkKKmeJddeFffKdjeddd'); 

function market_dock_api_encrypt($string) {
        $key = ENCRYPT_KEY; //preset key to use on all encrypt and decrypts.
        $result = '';
   for($i=0; $i<strlen($string); $i++) {
     $char = substr($string, $i, 1);
     $keychar = substr($key, ($i % strlen($key))-1, 1);
     $char = chr(ord($char)+ord($keychar));
     $result.=$char;
   }
   return urlencode(base64_encode($result));
}

Ben sadece bu bazen böyle içinde "%" olarak karakterlerle tuşları sonuçları fark, ve ben URL'ler kullanabileceğiniz bir anahtar gerekir. Bunu nasıl izin vermek için bu değiştirebilirim? Ben base64_encode kısmı ne olduğunu izlenim altında oldu. Açıkçası, ben yanılıyorum.

1 Cevap

The string returned is safe to use in URLs - the "%"s come from it being passed through urlencode(). The base64_encode() was designed to pass binary data through ASCII, not specifically for URLs, so it can use "=", "+" and "/".

Fonksiyonu yorumlardan:

RFC 4648 Bölüm 5'de açıklandığı gibi, bu fonksiyon "URL ile Base 64 kodlama ve Upload Güvenli Alfabe", "base64url" destekler

<?php
function base64url_encode($plainText)
{
    $base64 = base64_encode($plainText);
    $base64url = strtr($base64, '+/', '-_');
    return ($base64url);    
}
?>

Siz RTRIM (veya kaçmak) bir URI kullanmak için = 'nin firar etmek isteyebilirsiniz.

Bu kullanırsanız tabii ki de bir dekoderi oluşturmak gerekiyor.