2011-04-29 11 views
5

Tôi đã viết một kịch bản lưu trữ chữ ký số trong tập tin nhị phân và tập lệnh. Câu hỏi này chỉ được liên quan đến kịch bản: Hiện nay, tất cả những chữ ký được lưu trữ trong một dòng duy nhất (bình luận) như:Ngôn ngữ kịch bản: Tối đa. Line Length

#!/usr/bin/perl 
print "Hello" 
print " World\n" 
#Signature:ASDASG13412sdflsal4sf etc........ 

Các ví dụ là Perl, nhưng điều này được thực hiện cho tất cả các ngôn ngữ kịch bản (Perl, Python, shell script etc.) Vì vậy, bây giờ câu hỏi của tôi là: Tôi có thể gặp rắc rối nếu độ dài của dòng chứa chữ ký quá dài không? Làm thế nào để thông dịch viên xử lý việc này? Nếu vậy, số tiền tối đa là bao nhiêu. chiều dài dòng tôi có thể sử dụng?

+4

Tôi vừa cố gắng hết sức tò mò 500k ký tự trên một dòng trong Python mà không gặp sự cố. Bạn có lẽ chỉ nên thử nó cho mình cho tất cả các ngôn ngữ được đề cập. – Fenikso

Trả lời

3

Hầu hết các ngôn ngữ kịch bản sẽ có giới hạn đủ dài, nếu thực sự chúng có giới hạn chính thức về độ dài của dòng . POSIX khuyến cáo tối thiểu 2048.

Chữ ký của bạn dài bao lâu? Nhiều khả năng, không quá 1024 ... trong trường hợp đó, tôi thực sự sẽ không lo lắng. Nếu nó không hoạt động đối với một số ngôn ngữ, bạn nên báo cáo lỗi thay vì bất kỳ thứ gì khác.

+0

Cảm ơn câu trả lời. Độ dài chữ ký của tôi dựa vào độ dài của khóa RSA được sử dụng. Tôi vừa thử nghiệm một phím 4096Byte (dài nhất có thể), tạo ra chiều dài dòng khoảng 1.1K – Chris

2

Trong Python, bạn không gặp bất kỳ vấn đề nào với độ dài dòng miễn là bạn có đủ bộ nhớ. Trong PHP, bạn có thể bị giới hạn bởi số lượng bộ nhớ Trình thông dịch PHP được phép sử dụng (được đặt trong php.ini)

3

Perl cũng không có độ dài dòng tối đa cố định, trừ trường hợp được áp dụng bởi mức sử dụng bộ nhớ.