2012-07-27 69 views
2

在完成我的網站Java登錄程序和頁面時,我決定通過URL將加密值傳遞給驗證頁面,作爲額外的安全線。我有一個很早以前寫過的加密算法,我沒有人知道已經破解了,所以我想使用它。但我需要字符才能正常工作。據我所知,PHP沒有字符類型。所以我的問題是首先,他們是一個字符類型,其次,是否有可能將其轉換爲一個int?注意:登錄是一個簽名的小程序,所有頁面都在PHP中。編輯:忘了提及這只是加密的基礎,我會加入到Algorithim中。PHP字符類型加密

+2

「我有algorithim,一個encyrption ......沒有人知道我已經破解但「不要推出自己的安全。 – 2012-07-27 18:23:46

+0

如果你想測試它的安全性,然後讓其他人嘗試並破解它。如果他們不能,那麼這說明你的算法很好。 – starbeamrainbowlabs 2012-07-27 18:30:04

+0

我有我的老師,當我第一次寫它的時候,我的編程課的每個人都會測試它。他們不能。然後,我在一年後問班上最好的學生再試一次。他仍然不能。這足夠好嗎? – Taxes45 2012-07-27 18:37:56

回答

2

您可以通過$str[$index]引用字符串中的字符$str

ord函數會返回一個字符的整數值:

$val = ord($str[$index]); 

chr功能則正好相反:

$char = chr($val);//$char == $str[$index] 
+0

非常感謝。這可以解決第一部分問題,但是我可以將它更改爲int,即 '$ val =(int)ord($ str [$ index]);' – Taxes45 2012-07-27 18:33:35

+0

'ord'返回一個int:D – meiamsome 2012-07-27 18:35:21

+0

對不起。 ADD通過閱讀殺死我的能力。 – Taxes45 2012-07-27 18:41:35

1

您可以通過參考$s[$i]來逐個字符地訪問字符串$sord($s)獲取字符的ASCII值,chr($n)獲取與ASCII值對應的字符。

不要使用你自己的密碼原語除非你知道你在做什麼!使用PHP自己實現的已知強算法(例如AES-256)。只是因爲沒有人知道已經破解你的自定義算法並不意味着別人不能。

0

PHP中沒有char類型,並且string類型不易轉換爲int。 PHP處理動態類型雜耍,所以不使用類型聲明。

在附註中,「沒有人破解[我的加密算法]」並不一定意味着有人不會在未來。如果你正在加密重要的東西,使用標準的加密算法 - 它們是標準的原因。

+0

對不起,我忘了提及這只是加密的基礎。我決定迅速加密它。我現在將編輯它。 – Taxes45 2012-07-27 18:27:20