私のアンドロイドアプリでは、私はedittextからの通常の文字列と比較したいハッシュされた文字列を持っています。私はそれを次のように使ってください。Ios swift SHA1暗号化
try {
MessageDigest hashDigester = MessageDigest.getInstance("SHA-1");
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return (new BigInteger(1, hashDigester.digest(pin.getBytes())).toString(16)).equals(object.getPin());
上記のコードはうまくいきます。今、私は
text.sha1()
とiも
extension Data {
func hexString() -> String {
let string = self.map{String(format:"%02x", Int($0))}.joined()
return string
}
func SHA1() -> Data {
var result = Data(count: Int(CC_SHA1_DIGEST_LENGTH))
_ = result.withUnsafeMutableBytes {resultPtr in
self.withUnsafeBytes {(bytes: UnsafePointer<UInt16>) in
CC_SHA1(bytes, CC_LONG(count), resultPtr)
}
}
return result
}
}
extension String {
func hexString() -> String {
return self.data(using: .utf8)!.hexString()
}
func SHA1() -> String {
return self.data(using: .utf8)!.SHA1().hexString()
}
}
の下に使用してみましたが、どちらも与えた。このようなのEditTextからハッシュを作成するためにCryptoSwiftを使用してみましたSWIFT 3.0 を使用してIOSで同じことをやってトリングています同じ結果ですが、私のアンドロイドコードと同じではありません。 私はスワイプコードをどのように調整するべきですか?
ことができますあなたと、上のSHA-1を行った文字列の例AndroidやiOS(このコード)の結果 – paulvs
iosで407を挿入すると35db01d3926745bec110d5709a544e250f7fffc4が返され、同じ407のアンドロイドでは正しいe6de89674d9f1d7968a70dad4f41b844965b4fdcが返されます – appLogic