Sha256: 1cb1474c72141caa83de925315b87f44a4fa082b55d8b0e69472a7af77dc291a
Contents?: true
Size: 897 Bytes
Versions: 5
Compression:
Stored size: 897 Bytes
Contents
require 'rubygems' require 'highline/import' require 'openssl' class Huami STR1 = "snow" STR2 = "kise" STR3 = "sunlovesnow1990090127xykab" def self.huami(key, password) md5one = md5_hmac(key, password) md5two = md5_hmac(STR1, md5one) md5three = md5_hmac(STR2, md5one) # 转换大小写 rule = md5three.split('') source = md5two.split('') for i in (0..31) if STR3.include? rule[i] source[i] = source[i].upcase end end # 保证首字符为字母 if is_digit(source[0]) code16 = "K" + source[1..15].join() else code16 = source[0..15].join() end return code16 end def self.md5_hmac(key, password) digest = OpenSSL::Digest::Digest.new('md5') return OpenSSL::HMAC.hexdigest(digest, key, password) end def self.is_digit(string) return string.strip =~ /^[0-9]$/ end end
Version data entries
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
huami-1.0 | lib/huami.rb |
huami-0.0.5 | lib/huami.rb |
huami-0.0.4 | lib/huami.rb |
huami-0.0.3 | lib/huami.rb |
huami-0.0.2 | lib/huami.rb |