anchor.diff:  ;    post parameters:
   ;        params = enc-text
   ;        encSecKey = enc-sec-key
  +
  +(defun square (x)
  +  (* x x))
  +
  +(defun fast-expt (base exponent)
  +  "base ^ power"
  +  (labels ((expt-iter (b e a)
  +	     (cond ((= e 0) a)
  +		   ((evenp e) (expt-iter (square b) (/ e 2) a))
  +		   (t (expt-iter b (- e 1) (* b a))))))
  +    (expt-iter base exponent 1)))
  +
  +(defun expt-mod (base exponent modulus)
  +  "As (mod (expt base exponent) modulus), but more efficient.
  +^表示幂运算  %表示取余 
  +1. (x * y) % m = (x * (y % m)) % m = ((x % m) * (y % m)) % m
  +2. (x ^ y) % m = ((x % m) ^ y) % m
  +
  +e.g.
  +(evenp n) => t
  +x^n % m ==> (x^(n / 2))^2 % m ==> (x^(n / 2) % m)^2 % m
  +(evenp n) => nil
  +x^n % m ==> (x * x^(n - 1)) % m ==> (x * (x^(n - 1) % m)) % m
  +"
  +  (if (= exponent 0)
  +      1
  +      (if (evenp exponent)
  +	  (mod (square (expt-mod base (/ exponent 2) modulus)) modulus)
  +	  (mod (* base (expt-mod base (- exponent 1) modulus)) modulus))))
  +
   
   (defun string+ (&rest s)
     (apply #'concatenate 'string s))
  
positive.code: (fast-expt 102788927505630524891970060280564889176 65537)
  
  
  (defun fast-expt (base power)
    (labels ((square (x) (* x x))
  	   (expt-iter (b p a)
  	     (cond ((= p 0) a)
  		   ((evenp p) (expt-iter (square b) (/ p 2) a))
  		   (t (expt-iter b (- p 1) (* b a))))))
      (expt-iter base power 1)))
  
negative.code:   (let ((n-text (parse-integer (convert-utf8-to-hex (reverse text)) :radix 16))
  	(n-pubkey (parse-integer pubkey :radix 16))
  	(n-modulus (parse-integer modulus :radix 16)))
      (add-padding (write-to-string (expt-mod n-text n-pubkey n-modulus) :base 16) modulus)))
  
  (defun encrypt-user-account (username password &optional
  						 (remember "true")
  