summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/ayk/jcryption.rb21
1 files changed, 20 insertions, 1 deletions
diff --git a/lib/ayk/jcryption.rb b/lib/ayk/jcryption.rb
index 3b4871f..d498184 100644
--- a/lib/ayk/jcryption.rb
+++ b/lib/ayk/jcryption.rb
@@ -25,6 +25,8 @@
#----------------------------------------------------------------------------
#
require 'ayk/maths'
+require 'digest/md5'
+require 'digest/sha2'
#
module JCryption
#
@@ -47,5 +49,22 @@ module JCryption
OpenSSL::PKey::RSA.generate( bits )
end
module_function :gen_keypair
+ #
+ def digest passwd, salt=nil
+ n = passwd.length
+ i = ((n/2)+1)-n%8
+ i=0 if i<0
+ if salt.nil?
+ m = Digest::MD5.new
+ m << Time.now.to_s
+ n = Time.now.to_i%20
+ salt = m.to_s[n..n+12]
+ end
+ d = Digest::SHA2.new << passwd[0..i]+salt+passwd[i+1..-1]
+ [d,salt]
+ end
+ module_function :digest
+ #
end
-
+#
+# EOF