Javascript – Einige verwandte Probleme mit der AES128-Verschlüsselung

WBOY
Freigeben: 2016-08-04 09:21:43
Original
1284 Leute haben es durchsucht

Klasse aes {

<code>const KEY = "625202f9149e061d";
const IV = "5efd3f6060e20330";

/**</code>
Nach dem Login kopieren
Nach dem Login kopieren
    • pkcs7-Ergänzung

    • @param string $string Klartext

    • @param int $blocksize Blockgröße, in Byte

    • @return String
      */

    1. Funktion addPkcs7Padding($string, $blocksize = 32) {

      <code>   $len = strlen($string); //取得字符串长度
         $pad = $blocksize - ($len % $blocksize); //取得补码的长度
         $string .= str_repeat(chr($pad), $pad); //用ASCII码为补码长度的字符, 补足最后一段
         return $string;</code>
      Nach dem Login kopieren
      Nach dem Login kopieren

      }

    2. aes128cbcEncrypt($str, $iv = self::IV, $key = self::KEY) { // $this->addPkcs7Padding($str,16)

      <code>   $base = (mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $this->addPkcs7Padding($str, 16), MCRYPT_MODE_CBC, $iv));
         return $this->strToHex($base);</code>
      Nach dem Login kopieren
      Nach dem Login kopieren

      }

    3. strToHex($string) {//Zeichenfolge in Hexadezimalzahl umwandeln

      <code>   $hex = "";
         $tmp = "";
         for ($i = 0; $i < strlen($string); $i++) {
             $tmp = dechex(ord($string[$i]));
             $hex.= strlen($tmp) == 1 ? "0" . $tmp : $tmp;
         }
         $hex = strtoupper($hex);
         return $hex;</code>
      Nach dem Login kopieren
      Nach dem Login kopieren

      }
      Der AES-Verschlüsselungscode, den ich im Internet gefunden habe, enthält PHP und Android. Eine freundliche Person kam und sagte mir: $aes = new aes(); Schritt oder Hilfe beim Schreiben einer entsprechenden js-Version = =

    Antwortinhalt:

    Klasse aes {

    <code>const KEY = "625202f9149e061d";
    const IV = "5efd3f6060e20330";
    
    /**</code>
    Nach dem Login kopieren
    Nach dem Login kopieren
    • pkcs7-Ergänzung

    • @param string $string Klartext

    • @param int $blocksize Blockgröße, in Byte

    • @return String
      */

    1. Funktion addPkcs7Padding($string, $blocksize = 32) {

      <code>   $len = strlen($string); //取得字符串长度
         $pad = $blocksize - ($len % $blocksize); //取得补码的长度
         $string .= str_repeat(chr($pad), $pad); //用ASCII码为补码长度的字符, 补足最后一段
         return $string;</code>
      Nach dem Login kopieren
      Nach dem Login kopieren

      }

    2. aes128cbcEncrypt($str, $iv = self::IV, $key = self::KEY) { // $this->addPkcs7Padding($str,16)

      <code>   $base = (mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $this->addPkcs7Padding($str, 16), MCRYPT_MODE_CBC, $iv));
         return $this->strToHex($base);</code>
      Nach dem Login kopieren
      Nach dem Login kopieren

      }

    3. strToHex($string) {//String in Hexadezimal umwandeln

      <code>   $hex = "";
         $tmp = "";
         for ($i = 0; $i < strlen($string); $i++) {
             $tmp = dechex(ord($string[$i]));
             $hex.= strlen($tmp) == 1 ? "0" . $tmp : $tmp;
         }
         $hex = strtoupper($hex);
         return $hex;</code>
      Nach dem Login kopieren
      Nach dem Login kopieren

      }
      Der AES-Verschlüsselungscode, den ich im Internet gefunden habe, enthält PHP und Android. Eine freundliche Person kam und sagte mir: $aes = new aes(); Schritt oder Hilfe beim Schreiben einer entsprechenden js-Version = =

    Es ist ziemlich kompliziert zu sagen, schauen Sie sich diesen Link an.
    http://yinghuayuan8866.blog.163.com/blog/static/2245702720121225658625/

    Verwandte Etiketten:
    Quelle:php.cn
    Erklärung dieser Website
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
    Beliebte Tutorials
    Mehr>
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage