Trong thực tế, văn bản cần mã hóa thường có cả chữ hoa, chữ thường, khoảng trắng và dấu câu. Một biến thể thường dùng của mật mã Vigenère chỉ mã hóa các ký tự chữ cái (A-Z, a-z) và giữ nguyên mọi ký tự không phải chữ cái (khoảng trắng, chữ số, dấu câu, ...) tại đúng vị trí của nó; những ký tự này cũng không được tính vào dòng khóa (con trỏ khóa chỉ dịch chuyển khi gặp một ký tự chữ cái). Chữ hoa/thường của ký tự đầu ra được giữ nguyên như ký tự đầu vào tại vị trí đó.
Cho bản rõ P (có thể chứa chữ hoa, chữ thường, chữ số, khoảng trắng, dấu câu) và khóa K chỉ gồm chữ cái (không phân biệt hoa/thường, được quy về chữ in hoa khi tính toán). Gọi a0,a1,… là dãy các ký tự chữ cái của P theo đúng thứ tự xuất hiện. Ký tự chữ cái thứ j được mã hóa bằng ký tự khóa Kjmod∣K∣ theo công thức Vigenère chuẩn (cộng theo giá trị không phân biệt hoa thường, rồi trả kết quả về đúng dạng hoa/thường của ký tự gốc). Các ký tự không phải chữ cái được chép nguyên vào đúng vị trí của nó trong chuỗi kết quả.
Ví dụ: P= Attack at Dawn!, K= LEMON → kết quả là Lxfopv ef Rnhr! (khoảng trắng và dấu ! giữ nguyên vị trí; chữ A hoa được mã hóa vẫn ra chữ hoa L, các chữ thường mã hóa ra chữ thường).
Dòng 1: chuỗi P (1≤∣P∣≤2000) — có thể gồm chữ hoa, chữ thường, chữ số, dấu cách, dấu câu (dòng này có thể chứa khoảng trắng). Dòng 2: chuỗi khóa K (1≤∣K∣≤50), chỉ gồm chữ cái (hoa hoặc thường).
Một dòng duy nhất: chuỗi đã mã hóa, cùng độ dài với P; các ký tự không phải chữ cái được giữ nguyên đúng vị trí; hoa/thường tại mỗi vị trí chữ cái được giữ giống như trong P.
Ví dụ:
Đầu vào:
Attack at Dawn!
LEMON
Đầu ra:
Lxfopv ef Rnhr!
Đầu vào:
a
A
Đầu ra:
a
Đang tải editor...