diff --git a/uc_checkoutfi.module b/uc_checkoutfi.module
old mode 100644
new mode 100755
index a18e2ea..f066e24
--- a/uc_checkoutfi.module
+++ b/uc_checkoutfi.module
@@ -251,7 +251,7 @@ function uc_checkoutfi_form() {
     'DEVICE' => 1,
     'CONTENT' => 1,
     'TYPE' => 0,
-    'ALGORITHM' => 1,
+    'ALGORITHM' => 3,
     'DELIVERY_DATE' => date('Ymd', strtotime('now +30 day')),
     'FIRSTNAME' => $order->delivery_first_name,
     'FAMILYNAME' => $order->delivery_last_name,
@@ -378,7 +378,7 @@ function uc_checkoutfi_complete_check_vars($get) {
     drupal_set_message($status['msg'],'error');
     exit();
   }
-  $checksum = drupal_strtoupper(md5($return_values['VERSION'] .'+'. $return_values['STAMP'] .'+'. $return_values['REFERENCE'] .'+'. $return_values['PAYMENT'] .'+'. $return_values['STATUS'] .'+'. $return_values['ALGORITHM'] .'+'. variable_get('uc_checkoutfi_passphrase', 'SAIPPUAKAUPPIAS')));
+  $checksum = drupal_strtoupper(hash_hmac('sha256', $return_values['VERSION'] .'+'. $return_values['STAMP'] .'+'. $return_values['REFERENCE'] .'+'. $return_values['PAYMENT'] .'+'. $return_values['STATUS'] .'+'. $return_values['ALGORITHM'], variable_get('uc_checkoutfi_passphrase', 'SAIPPUAKAUPPIAS')));
   if ($checksum == $return_values['MAC']) {
     return $return_values + $status;
   }
