Senin, 29 Oktober 2012

PKCS7 di c# dan php

ini adalah fungsi pkcs7 di c# dan php. fungsi ini sudah saya coba dan hasilnya cukup bagus, berikut adalah scriptnya:


c#:

private string addPKCS7pad(string str) {
    int strlen = str.Length;
    int sisa = (strlen % 32);
    if (sisa > 0)
    {
        char pad = ASCIIEncoding.ASCII.GetChars(new byte[] { (byte)sisa })[0];
       
return str.PadRight(sisa, pad);
    }
    else return str;
}

private string removePKCS7pad(string str) 
{
    string lc = str.Substring(str.Length -1 , 1);
    int numlc = ASCIIEncoding.ASCII.GetBytes(lc)[0];
    if (numlc < 1 || numlc > 32) return str;
    System.Text.RegularExpressions.Regex r =
        new System.Text.RegularExpressions.Regex(
        lc + "{" + numlc.ToString().Trim() + "}$");
    if (r.IsMatch(str))
    {
        return str.Substring(0, str.Length - numlc);
    }
    else return "";
}

sedangkan ini adalah versi php-nya:

function addPKCS7Pad($string, $blockSize=32) {
    $len = strlen($string);
    $pad = $blockSize - ($len % $blockSize);
    return $string . str_repeat(chr($pad), $pad);
}

function removePKCS7Pad($string) {
    $lc = substr($string, -1);
    $lci = ord($lc);
    if (preg_match("/" . $lc . "{" . $lci . "}$/", $string)) {
        $string = substr($string, 0, strlen($string) - $lci);
        return $string;
    } else return false;
}

selamat belajar ... :)

Tidak ada komentar:

Posting Komentar

Jika ada kritik dan saran, komentari Artikel ini.