Hướng dẫn check if base64 is valid image javascript - kiểm tra xem base64 có hợp lệ không

Có cách nào dễ dàng để kiểm tra xem URL hình ảnh cơ sở64 có hợp lệ không? Tôi đang nhận URL Base64 từ máy chủ thông qua AJAX/XHR và muốn tránh XSS trên trang web của tôi.

Hỏi ngày 12 tháng 9 năm 2015 lúc 15:12Sep 12, 2015 at 15:12

Hướng dẫn check if base64 is valid image javascript - kiểm tra xem base64 có hợp lệ không

3

Tôi đã viết một chức năng ASYNC bằng cách sử dụng câu trả lời @WolfShirts. Nó làm việc cho tôi.

Chức năng @WolfShirts sẽ không hoạt động vì dòng trở lại được đặt trong phạm vi sai.

async function isBase64UrlImage(base64String: string) {
  let image = new Image()
  image.src = base64String
  return await (new Promise((resolve)=>{
    image.onload = function () {
      if (image.height === 0 || image.width === 0) {
        resolve(false);
        return;
      }
      resolve(true)
    }
    image.onerror = () =>{
      resolve(false)
    }
  }))
}

Hướng dẫn check if base64 is valid image javascript - kiểm tra xem base64 có hợp lệ không

Jimmythecode

2.4123 Huy hiệu vàng19 Huy hiệu bạc52 Huy hiệu đồng3 gold badges19 silver badges52 bronze badges

Đã trả lời ngày 20 tháng 7 năm 2021 lúc 10:20Jul 20, 2021 at 10:20

Hướng dẫn check if base64 is valid image javascript - kiểm tra xem base64 có hợp lệ không

Tôi không chắc bạn đang cố gắng xác thực hình ảnh hay URL. Xác thực hình ảnh có thể là khó khăn. Trước tiên tôi sẽ chạy một tấm séc đối với các loại MIME Base64 đã biết.

'/' có nghĩa là jpeg.

'Tôi có nghĩa là png.

'R' có nghĩa là gif.

'U' có nghĩa là trang web.

let data = //suspectedBase64Image
    
    
function isImage(data){
    let knownTypes = {
      '/': 'data:image/jpg;base64,',
      'i': 'data:image/png;base64,',
      /*ETC*/
      }
      
      let image = new Image()
      
      if(!knownTypes[data[0]]){
        console.log("encoded image didn't match known types");
        return false;
      }else{
        image.src = knownTypes[0]+data
        image.onload = function(){
          //This should load the image so that you can actually check
          //height and width.
          if(image.height === 0 || image.width === 0){
            console.log('encoded image missing width or height');
            return false;
          }
      }
      return true;
}

Đây là một số kiểm tra sự tỉnh táo cơ bản mà bạn có thể sử dụng.

Bạn có thể đi sâu hơn và chuyển đổi số ma thuật thành base64 sau đó kiểm tra chúng trong dữ liệu cơ sở64. Mã này đưa ra giả định rằng bạn đang thiếu loại dữ liệu khi bắt đầu. Một số base64 sẽ có kiểu dữ liệu được hiển thị trong từ điển khi bắt đầu base64.

Đã trả lời ngày 30 tháng 10 năm 2020 lúc 22:13Oct 30, 2020 at 22:13

Hướng dẫn check if base64 is valid image javascript - kiểm tra xem base64 có hợp lệ không

1

Base64.Guru.Guru

Một giáo viên ảo tiết lộ cho bạn những bí mật tuyệt vời của Base64

Trình xác thực Base64 kiểm tra xem văn bản đã gửi có phải là chuỗi được mã hóa Base64 hợp lệ hay không. Nó cho phép bạn xác nhận trực tuyến một loạt các tiêu chuẩn Base64. Do đó, hãy cố gắng chỉ định một tiêu chuẩn khác, nếu một trong số chúng thất bại.

Nếu bạn không biết nên chọn tiêu chuẩn nào, hãy kiểm tra máy dò tiêu chuẩn. Nếu bạn muốn giải mã một chuỗi, hãy sử dụng bộ giải mã base64. Nếu chuỗi của bạn chứa các ký tự không hợp lệ hoặc không thể vượt qua xác thực, hãy sử dụng công cụ sửa chữa Base64.

Bài viết blog gần đây

  1. Nhà
  2. /
  3. Công cụ

Kiểm tra xem Base64 có ví dụ mã không

Xin chào tất cả mọi người, trong bài đăng này, chúng tôi sẽ kiểm tra cách giải quyết séc nếu câu đố lập trình Base64.

// How to check if a string is base64 encoded
// Originally from willnode https://stackoverflow.com/users/3908409/willnode
/* 
Checks if:
 - Length is divisible by 4
 - It uses A-Z, a-z, 0-9, +/=
 - Uses = at the end (within 0-3 characters)
*/
function isBase64(str) {
    return str.length % 4 == 0 && /^[A-Za-z0-9+/]+[=]{0,3}$/.test(str);
}

Chúng tôi đã thấy cách giải quyết kiểm tra nếu Base64 với các ví dụ khác nhau.

Làm thế nào để bạn kiểm tra nếu đó là Base64?

Trong mã hóa base64, bộ ký tự là [A-Z, A-Z, 0-9 và + /]. Nếu độ dài phần còn lại nhỏ hơn 4, chuỗi được đệm với các ký tự '='. ^([A-A-ZA-Z0-9+/] {4})* Có nghĩa là chuỗi bắt đầu với các nhóm 0 hoặc nhiều hơn

Làm cách nào để kiểm tra xem chuỗi base64 có hợp lệ không?

Base64 Trình xác thực Nếu không thể giải mã chuỗi Base64 của bạn, trình xác nhận sẽ hiển thị cho bạn một thông báo lỗi. Mặt khác, nếu chuỗi Base64 hợp lệ, bạn sẽ thấy chuỗi được giải mã trong trường văn bản kết quả. Nếu bạn để bật tự động chuyển hóa, trình xác thực Base64 sẽ xác thực chuỗi đầu vào trên mỗi thay đổi văn bản.

== trong base64 là gì?

Dấu hiệu bằng "=" đại diện cho một phần đệm, thường được nhìn thấy ở cuối chuỗi được mã hóa cơ sở64. Kích thước trong byte là chia hết cho ba (bit chia hết cho 24): tất cả các bit được mã hóa bình thường.

Làm thế nào để tôi biết nếu một hình ảnh là base64?

Xin chào các bạn, bạn có thể xác thực mã hình ảnh mã hóa cơ sở

Làm thế nào để bạn kiểm tra xem chuỗi có được mã hóa hay không?

Vì vậy, bạn có thể kiểm tra xem chuỗi có chứa dấu hai dấu không, nếu không, urldecode nó và nếu chuỗi đó chứa dấu hai chấm, chuỗi ban đầu được mã hóa URL, nếu không, hãy kiểm tra xem các chuỗi có khác nhau không và nếu vậy , nó không phải là URI.19-FEB-2010 hợp lệ

Base64 trông như thế nào?

Cơ sở-64 bản đồ 3 byte (8 x 3 = 24 bit) trong 4 ký tự trải dài 6 bit (6 x 4 = 24 bit). Kết quả trông giống như "twfuiglzigrpc3rpb".

Là một ký tự base64 hợp lệ?

Base64 chỉ chứa A Z Z, A, Z, 0 ,9, +, / và =. Vì vậy, danh sách các ký tự không được sử dụng là: tất cả các ký tự có thể trừ đi các ký tự được đề cập ở trên. Cho mục đích đặc biệt.

Định dạng tệp Base64 là gì?

Base64 là một nhóm các sơ đồ mã hóa nhị phân với văn bản tương tự đại diện cho dữ liệu nhị phân ở định dạng chuỗi ASCII bằng cách dịch nó thành biểu diễn Radix-64. Thuật ngữ base64 bắt nguồn từ mã hóa chuyển nội dung camat cụ thể.5 ngày trước

Làm cách nào để cơ sở mã hóa một chuỗi trong 64?

Nếu chúng ta mã hóa Base64, chúng ta sẽ làm theo các bước sau: Lấy giá trị ASCII của mỗi ký tự trong chuỗi. Tính toán nhị phân 8 bit tương đương với các giá trị ASCII. Chuyển đổi các khối 8 bit thành các khối 6 bit bằng cách đơn giản là nhóm lại các chữ số.19-SEPT-2021

Base64 có phải là một chuỗi không?

Base64 là một sơ đồ mã hóa nhị phân cho văn bản đại diện cho dữ liệu nhị phân ở định dạng chuỗi ASCII. Base64 được thiết kế để mang dữ liệu được lưu trữ ở định dạng nhị phân trên các kênh. Nó có bất kỳ dạng dữ liệu nào và biến nó thành một chuỗi dài văn bản đơn giản.11-JAN-2021

Làm thế nào bạn có thể biết nếu một cái gì đó là base64 được mã hóa?

Dữ liệu được mã hóa sẽ luôn có đặc điểm sau:..
Độ dài của chuỗi được mã hóa cơ sở64 luôn là bội số của 4 ..
Chỉ có những nhân vật này được sử dụng bởi mã hóa: Một cách khác nhau, một trong những nhân vật khác, một trong những nhân vật khác,

Base64 có tốt cho hình ảnh không?

Base64 chỉ hữu ích cho hình ảnh rất nhỏ.Điều này là do khi nói đến các hình ảnh lớn hơn, kích thước được mã hóa của một hình ảnh trong byte cuối cùng sẽ lớn hơn nhiều so với các tệp JPEG hoặc PNG.Điều này có thể dẫn đến thời gian tải trang chậm và tăng số lượng sử dụng băng thông cho trang web của bạn.. This is because when it comes to larger images, the encoded size of a picture in bytes will end up being much larger than JPEGs or PNG files. This can result in slow page load times and an increased amount of bandwidth usage for your site.

Base64 hình ảnh có nhanh hơn không?

Mặc dù Base64 là một cách tương đối hiệu quả để mã hóa dữ liệu nhị phân, trung bình vẫn sẽ tăng kích thước tệp cho hơn 25%.Điều này không chỉ tăng hóa đơn băng thông của bạn, mà còn tăng thời gian tải xuống.on average still increase the file size for more than 25%. This not only increases your bandwidth bill, but also increases the download time.

Làm thế nào kiểm tra chuỗi là base64 hoặc không trong PHP?

Điều này rất giống với việc thực hiện của riêng tôi.....
Hàm Ver ngắn nhất is_base64 ($ s) {$ decoded = base64_decode ($ s, true);trả về preg_match ('/^[a-za-z0-9 \/\ r \ n+]*= {0,2} $/', $ s) && false!$ s;}.