@@ 128-162 (lines=35) @@ | ||
125 | * |
|
126 | * @return mixed |
|
127 | */ |
|
128 | public static function encrypt($data, $key, $iv, $settings = []) |
|
129 | { |
|
130 | if ($data === '' || !extension_loaded('mcrypt')) { |
|
131 | return $data; |
|
132 | } |
|
133 | ||
134 | //Merge settings with defaults |
|
135 | $defaults = [ |
|
136 | 'algorithm' => MCRYPT_RIJNDAEL_256, |
|
137 | 'mode' => MCRYPT_MODE_CBC, |
|
138 | ]; |
|
139 | $settings = array_merge($defaults, $settings); |
|
140 | ||
141 | //Get module |
|
142 | $module = mcrypt_module_open($settings['algorithm'], '', $settings['mode'], ''); |
|
143 | ||
144 | //Validate IV |
|
145 | $ivSize = mcrypt_enc_get_iv_size($module); |
|
146 | if (strlen($iv) > $ivSize) { |
|
147 | $iv = substr($iv, 0, $ivSize); |
|
148 | } |
|
149 | ||
150 | //Validate key |
|
151 | $keySize = mcrypt_enc_get_key_size($module); |
|
152 | if (strlen($key) > $keySize) { |
|
153 | $key = substr($key, 0, $keySize); |
|
154 | } |
|
155 | ||
156 | //Encrypt value |
|
157 | mcrypt_generic_init($module, $key, $iv); |
|
158 | $res = @mcrypt_generic($module, $data); |
|
159 | mcrypt_generic_deinit($module); |
|
160 | ||
161 | return $res; |
|
162 | } |
|
163 | ||
164 | public static function setDebug($exceptionCode) |
|
165 | { |
|
@@ 215-250 (lines=36) @@ | ||
212 | * |
|
213 | * @return mixed |
|
214 | */ |
|
215 | public static function decrypt($data, $key, $iv, $settings = []) |
|
216 | { |
|
217 | if ($data === '' || !extension_loaded('mcrypt')) { |
|
218 | return $data; |
|
219 | } |
|
220 | ||
221 | //Merge settings with defaults |
|
222 | $defaults = [ |
|
223 | 'algorithm' => MCRYPT_RIJNDAEL_256, |
|
224 | 'mode' => MCRYPT_MODE_CBC, |
|
225 | ]; |
|
226 | $settings = array_merge($defaults, $settings); |
|
227 | ||
228 | //Get module |
|
229 | $module = mcrypt_module_open($settings['algorithm'], '', $settings['mode'], ''); |
|
230 | ||
231 | //Validate IV |
|
232 | $ivSize = mcrypt_enc_get_iv_size($module); |
|
233 | if (strlen($iv) > $ivSize) { |
|
234 | $iv = substr($iv, 0, $ivSize); |
|
235 | } |
|
236 | ||
237 | //Validate key |
|
238 | $keySize = mcrypt_enc_get_key_size($module); |
|
239 | if (strlen($key) > $keySize) { |
|
240 | $key = substr($key, 0, $keySize); |
|
241 | } |
|
242 | ||
243 | //Decrypt value |
|
244 | mcrypt_generic_init($module, $key, $iv); |
|
245 | $decryptedData = @mdecrypt_generic($module, $data); |
|
246 | $res = rtrim($decryptedData, "\0"); |
|
247 | mcrypt_generic_deinit($module); |
|
248 | ||
249 | return $res; |
|
250 | } |
|
251 | ||
252 | /** |
|
253 | * @param $expires |