Hướng dẫn aes/ecb pkcs7padding php - aes / ecb pkcs7padding php

Tôi muốn mã hóa một chuỗi bằng thuật toán mã hóa AES 256 bit với ECB và PKCS7Padding. Tôi đã đi qua nhiều trang web nhưng không ai trong số họ phù hợp.

Tôi có mã Java đang sử dụng phương thức AES/ECB/PKCS7Padding để mã hóa một chuỗi.

Đầu vào: Đầu ra 'MyString': SWVNDZ0DWITYOK4IXTURDA ==

Tôi muốn thuật toán này trong PHP bằng OpenSSL, tôi đã thử nhiều giải pháp nhưng không ai trong số chúng hoạt động cho tôi.

Vui lòng giúp tôi giải quyết vấn đề

Mã Java

package com.test.utils;



import com.sun.org.apache.xerces.internal.impl.dv.util.Base64;

import java.security.Key;
import java.security.Security;

import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;

public class Crypto {

    private final String ALGORITHM = "AES/ECB/PKCS7Padding";
    private byte[] keyValue;

    public Crypto(String token) {
        keyValue = token.getBytes();
    }

    public Crypto() {
        keyValue= new byte[]{1, 2, 3, 4, 5, 6, 7,8,9, 10, 11, 12,13, 14, 15, 16};
    }

    public String encrypt(String valueToEnc) throws Exception {

        Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
        Key key = generateKey();

        Cipher c = Cipher.getInstance(ALGORITHM, "BC");
        c.init(Cipher.ENCRYPT_MODE, key);
        byte[] encValue = c.doFinal(valueToEnc.getBytes("UTF8"));
        return Base64.encode(encValue);

    }

    public String decrypt(String encryptedValue) throws Exception {
        Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
        Key key = generateKey();
        Cipher c = Cipher.getInstance(ALGORITHM, "BC");
        c.init(Cipher.DECRYPT_MODE, key);
        byte[] decordedValue = Base64.decode(encryptedValue);
        byte[] decValue = c.doFinal(decordedValue);
        return new String(decValue);
    }


    private Key generateKey() throws Exception {
        return new SecretKeySpec(keyValue, ALGORITHM);
    }
}

Tôi đã thử làm trong PHP bằng cách sử dụng openSSL

<?php
$data = "mystring";
$method = "AES-256-ECB";
$ivSize = openssl_cipher_iv_length($method);

$iv = [1, 2, 3, 4, 5, 6, 7,8,9, 10, 11, 12,13, 14, 15, 16];

$packed = call_user_func_array("pack", array_merge(array("c*"), $iv));

$output_utf8 = mb_convert_encoding($packed, 'utf-8');
$encrypted = openssl_encrypt($data,$method,$output_utf8,OPENSSL_RAW_DATA);



echo strlen('sWVnDZ0dwiTYoK4ixtURdA==');
echo "<br>";
echo "Expected Answer : sWVnDZ0dwiTYoK4ixtURdA==<br><br>";
echo strlen(base64_encode($encrypted));
echo "<br>";
echo "Answer : ".base64_encode($encrypted);

?>

Câu trả lời mong đợi: SWVNDZ0DWityOK4IXTURDA ==

Câu trả lời thực tế: 7e5skrci21xzcwo6+zofaa ==

Duplicates the following C# code:

public static byte[] DecryptBySymmetricKey(string encryptedText, byte[] key)
  {
     string keyAsBase64 = Convert.ToBase64String(key);

     byte[] dataToDecrypt = Convert.FromBase64String(encryptedText);
     var keyBytes = key;
     AesManaged tdes = new AesManaged();
     tdes.KeySize = 256;
     tdes.BlockSize = 128;
     tdes.Key = keyBytes;
     tdes.Mode = CipherMode.ECB;
     tdes.Padding = PaddingMode.PKCS7;
     ICryptoTransform decrypt__1 = tdes.CreateDecryptor();
     byte[] deCipher = decrypt__1.TransformFinalBlock(dataToDecrypt, 0, dataToDecrypt.Length);
     tdes.Clear();
     string EK_result = Convert.ToBase64String(deCipher);
     return EK_result;
}
<?php

// The version number (9_5_0) should match version of the Chilkat extension used, omitting the micro-version number.
// For example, if using Chilkat v9.5.0.48, then include as shown here:
include("chilkat_9_5_0.php");

// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

$crypt = new CkCrypt2();

// In the C# code above that is to be duplicated here, use the base64 encoded key.
$keyAsBase64 = '...';
$encryptedBytesAsBase64 = '....';

$crypt->put_KeyLength(256);
$crypt->put_CryptAlgorithm('AES');
$crypt->put_CipherMode('ecb');
$crypt->put_PaddingScheme(0);
$crypt->SetEncodedKey($keyAsBase64,'base64');

$crypt->put_EncodingMode('base64');

// Pass the base64 representation of the encrypted data.
// (The EncodingMode indicates you are passing base64.)
$EK_result = $crypt->decryptStringENC($encryptedBytesAsBase64);

print $EK_result . "\n";

?>

Hướng dẫn định lượng regex php

POSIX Biểu hiện chính quy trong phpcác dấu ngoặc Vuôngquantifier trong phpví dụdãy ký tự /c

Tôi có thể sử dụng phpmyadmin với mysql không?

Giới thiệu Phpmyadmin là một công cụ quản trị dựa trên web phổ biến được sử dụng để quản lý các máy chủ và cơ sở dữ liệu MySQL. Hướng dẫn này minh họa cách tạo cơ sở dữ liệu mới và người dùng mới để truy cập ...

Hướng dẫn php MongoDbClient

BÀi VIếT ĐượC Trong BÀi VIếT NÀY, SmartJob Trinh BÀy Về Việc ...

Dự án hệ thống hóa đơn và thanh toán điện tử trong PHP

Đăng ký chúng tôi trên YouTube cho dự án hoạt động đầy đủ mới nhất của UpdateA dựa trên hệ thống quản lý hóa đơn trực tuyến được viết bằng PHP và chạy trên MySQL. Dự án PHP dưới đây có tất cả các ...

Xây dựng trang web thương mại đồ nội thất bằng cách sử dụng PHP

Trang web thương mại thương mại điện tử-WebsiteC Commerce sử dụng các ngôn ngữ lập trình PHP và Frontend. Đây là một trang web thương mại điện tử (cửa hàng nội thất) được sản xuất bằng PHP, HTML, CSS, JavaScript, JQuery là chính ...

Mã PHP hiển thị thay vì chạy xampp

Đã hỏi 9 năm, 11 tháng Agoview 51k lần có thể trùng lặp: Mã PHP không được thực thi (tôi có thể thấy nó trên mã nguồn của trang)

Giao diện trong PHP là gì?

PHP - Giao diện là gì? Giao diện cho phép bạn chỉ định phương thức nào một lớp nên triển khai. Xác định giúp dễ dàng sử dụng nhiều lớp khác nhau theo cùng một cách. Khi một hoặc nhiều lớp ...

Hướng dẫn đối tượng htmlinputelement PHP

Thêm đối tượng vào danh sách Pythonto Thêm một phần tử duy nhất vào danh sách trong Python ở cuối, bạn chỉ cần sử dụng phương thức append (). Nó chấp nhận một đối tượng và thêm đối tượng đó vào cuối danh sách mà nó ...

Hướng dẫn Php 8 trên IIS

BÀI VIếT NÀY Sẽ HướNG DẫN BạN Hệ THốNG IIS Cơ BảN (Windows + IIS + PHP + MySQL + SSL miễn phí Let Let Encrypt). Nếu bạn cần hỗ trợ,

Hướng dẫn dùng passthrt trong php

NHư được rút ra từ http://php.net/ && Chipmunkninja: c g

Cổng hướng dẫn php-fpm

Mac của tôi có PHP không? Thay đổi Ngôn ngữ: Gửi yêu cầu kéo Báo cáo một bảng lỗi về các gói sử dụng các gói được gói trước khi MacOS MontereyCompiling PHP trên macOS Phần này chứa ghi chú ...

Hướng dẫn mảng đến xml, php

Hầu hết các câu trả lời trên là chính xác. Tuy nhiên, tôi đã đưa ra câu trả lời này để giải quyết vấn đề tương thích mảng_walk_recursive và cả vấn đề khóa số. Nó cũng vượt qua tất cả các bài kiểm tra ...

Docker php ext cài đặt pdo_sqlsrv

Tôi có một tệp Docker đơn giản, như sau: Từ Php: 7.2-Apache SPOCH SRC//VAR/WWW/HTML/Thông thường để cài đặt trình điều khiển cho kết nối Mongo hoặc MySQL Tôi sẽ làm như vậy bằng cách thêm một cái gì đó như bên dưới vào ...

Hướng dẫn Lịch cuộn HTML

Lịch hay dịch đã hát tiếng việt là lịch, một trong nh ững thứ Không thể thiếu trong đời sống hằng ngào Tuy Nhiênn thì hiện nay Không nhiều ...

Hướng dẫn dùng xml giải mã trong php

MÃ HÓA CHUỗI unicodetrường hợp bạn cần viết Cách nào đặc biệt ...

Giải thích cấu trúc dòng chảy trong PHP

Ngày nay, sẽ thảo luận về các cấu trúc kiểm soát và vòng lặp trong PHP. Tôi sẽ chỉ cho bạn cách sử dụng tất cả các cấu trúc điều khiển chính được hỗ trợ trong PHP, như nếu, khác, cho, foreach, while và ...

Cấu trúc điều khiển PHP của Hướng Dẫn

Tác giả: dương nguyễn Phú Cườngngày Đâu: hồi xưa Đó là một cấu trúc kiểm soát? Thực thi mã có thể được nhóm thành các danh mục như được hiển thị bên dưới tuần tự - cái này liên quan đến ...

Mật khẩu MySQL được mã hóa như thế nào?

Nhiều hàm mã hóa và nén trả về các chuỗi mà kết quả có thể chứa các giá trị byte tùy ý. Nếu bạn muốn lưu trữ các kết quả này, hãy sử dụng một cột có nhị phân varbinary hoặc blob ...

Hướng dẫn dùng fetchall php trong php

Sử dụng pdo trong php trong php bài bài viết hướng d Kết nối đến ...

SimplexML trong PHP là gì?

GIỚI THIỆU INSTALLING/CONFIGURINGREIQUIRENSIONINSTALLATERRUNTIME CONFIGURSE

ISSET là gì ($ _ bài trong PHP là gì?

Cố gắng hiểu mã ISSET ($ _ Post) này đang thực hiện (isset ($ _ post [gửi])) {$ title = $ _ post [title]; $ forename = $ _post [forename]; $ họ = $ _ bài [họ]; ...

Hướng dẫn lỗ hổng bảo mật php

Tại Privacy Australia, chúng tôi xem xét tất cả các dịch vụ bảo mật trên thị trường hiện nay và xem xét từng người trong số họ. Chúng tôi sẽ xem xét những điều tốt nhất, tồi tệ nhất và mọi thứ ở giữa, nhìn vào ...

Dịch tệp ngôn ngữ PHP trực tuyến

Xin chào Vexia, Cảm ơn bạn đã trả lời nhưng điều này không dành cho Prestashop nhưng vì chủ đề di động được gọi là iprestashopbtw, tôi đã tìm thấy phương pháp dễ nhất để dịch ngôn ngữ .php bằng Microsoft Excel, đây là: ...

Hướng dẫn thẻ dải php

. Tôi đã tạo một chức năng loại bỏ các thẻ HTML cùng với ...

Thêm vào giỏ hàng trong PHP bằng phiên

Được gửi bởi Nurhodelta_17 vào thứ Tư, ngày 10 tháng 3 năm 2021 - 11: 19. Hướng dẫn này đã giải quyết cách tạo ra một giỏ hàng đơn giản sử dụng phiên trong PHP. Hướng dẫn này được dự định trước khi người dùng thực sự ...

Thư viện ngày hướng dẫn php

. ...

Tải lên nhiều tệp trong mã nguồn PHP

Nhiều tệp tải lên trong PHP Tệp này chứa văn bản Unicode hai chiều có thể được giải thích hoặc biên dịch khác với những gì xuất hiện dưới đây. Để xem xét, hãy mở tệp trong một trình soạn thảo tiết lộ ...

Hướng dẫn dùng feof trong php

- ha feof () Dùng Để kiểm tra Coi Đạo

Hướng dẫn đặt hàng trước của PHP

. foreach chỉ hoạt động trên các mảng và đối tượng, và sẽ có lỗi khi bạn cố gắng sử dụng nó trên một biến ...

Hướng dẫn json parse trong php

Trong bào hướng dẫn tự học lập trình php này, bạn sẽ d

Bảng nhân Hướng dẫn trong php

Hướng dẫn liên kết php với htmlhào

Hướng dẫn Elementor Php 8

Tính năng nhà phát triển của Elementor Cho Phép bạn thênm Các Thuộc Tính html, tối ưu hóa dom và nhiều lợi Elementor là trình ...

Hướng dẫn php nhận url tệp

Khi bạn

Hướng dẫn php unchash sha256

NHư JOHANNES GORSET ĐÃ CHỉ RA, BÀI ĐÓ

Tĩnh có nghĩa là gì trong PHP?

Mẹo Trang này mô tả việc sử dụng từ khóa tĩnh để xác định các phương thức và thuộc tính tĩnh. tĩnh cũng có thể được sử dụng để xác định các biến tĩnh và cho các liên kết tĩnh muộn. Vui lòng tham khảo những ...

Lỗi nghiêm trọng của PHP là gì?

Lỗi PHP xảy ra khi có điều gì đó không ổn trong mã PHP. Lỗi có thể đơn giản như dấu chấm phẩy bị thiếu hoặc phức tạp như gọi một biến không chính xác. Để giải quyết hiệu quả vấn đề PHP trong ...

Hướng dẫn dùng cookie biệt danh trong php

Cookie cung cấp Cho ứng dụng web một phương thức l

Phiên bản PHP của hướng dẫn bluehost

Làm thế nào tonội phân Chínhin Bài viết này 👁at là PHP là gì? Làm thế nào để PHP hoạt động? PHP khác với HTML như thế nào? Tại sao PHP rất quan trọng cho hiệu suất trang web của bạn? Tổng quan về vai trò ...

PHP là loại mã nào?

PHP (Từ viết tắt đệ quy cho PHP: Tiền xử lý siêu văn bản) là một ngôn ngữ kịch bản đa năng nguồn mở được sử dụng rộng rãi, đặc biệt phù hợp để phát triển web và có thể được nhúng vào ...