Benim php 5.2 uygulamada bazı düz metin verileri karartmak veya şifrelemek gerekir.
Ben giriş dize dize ve çıkış aynı uzunlukta tutmak olurdu bir çözümü tercih ederim.
Yerinde güvenlik çok sayıda diğer tabakalar olduğu gibi bu, son derece güçlü bir gerek yoktur. Güçlü iyi olurdu, ama bu sadece yanlışlıkla veritabanı içinde gelen metni okumaktan etc / programcı / dba / support insanları koruyacaktır.
önemli hususlar
- EDIT ADD Ben giriş dize dize ve çıkış aynı uzunlukta tutmak olurdu bir çözümü tercih ederim.
- yalnızca dize metin bir veritabanında depolamak için şifreli / karartılmış olacak
- php uygulama veritabanı kaydetmeden önce verileri şifrelemek / karartmak için ihtiyacınız olacak ve veritabanı okuma aşağıdaki un-obfuscate/dencrypt gerekir
- Bu, varolan bir uygulama için bir değişiklik olduğunu
- sadece bazı sütunlar karartılmış gerekir / şifrelenmiş
- sadece bazı satırlar bir Tür alanında dayalı / şifreli karartılmış gerekir
- sadece bir kaç yük vardır / işlemek için puan kaydetmek
- maksimum sütun boyutu zaten bazı alanlar için belirlenen, ama başkaları için değil, ama ben kısıtlı alanların mevcut büyüklüğü içinde çalışmak için bir çözümü tercih ederim edilir
- EDIT, ADD tuşuna muhtemelen bazı Birincil anahtar bilgi + düzenlenemeyen alanların bir bileşkesi olacak olacak
Burada örnek bir veritabanı tablo ve verileri:
int char(1) varchar(24) int date
MyPrimaryKey RowType UserText UserNo DateChange
------------ ------- ------------------------ -------- ----------------
1 N nothing special here 43 6/20/2009 12:11am
2 N same thing, wow! 78 6/23/2009 1:03pm
3 S fBJKg}.jkjWfF78dlg@45kjg 43 6/25/2009 6:45am
4 N same old, same old text 21 6/25/2009 8:11am
Uygulama yüklemek ve ekran satırlar 1,2, ve normalde 4 olacaktır. Ancak şartlı (satır türüne göre) Bu allak bullak / şifrelemek ve un-obfuscate/decrypt mantığı kullanarak aralıksız 3 metin işlemek olur.
Herkes burada yardımcı olacağını allak / şifrelemek ve un-obfuscate/decrypt fonksiyonları kodu, bağlantılar, ve veya işaretçi sağlayabilir?
teşekkürler!
EDIT
I like the simple base64 encoding idea, but is there a method that can keep the data within a fixed size. All methods listed so far have the output value larger than the input value. This will be a problem for some columns, where the user can enter in 50 characters and it is stored in a varchar(50) column.