package cc.mrbird.febs.common.utils; import cc.mrbird.febs.dapp.entity.DappMemberEntity; import lombok.extern.slf4j.Slf4j; import org.bouncycastle.jcajce.provider.digest.Keccak; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import org.web3j.crypto.Hash; import org.web3j.utils.Numeric; import javax.servlet.http.HttpServletRequest; import java.nio.charset.StandardCharsets; /** * @author * @date 2022-03-18 **/ @Slf4j public class LoginUserUtil { public static DappMemberEntity getAppUser() { HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest(); return (DappMemberEntity) request.getSession().getAttribute("member"); } // address:0x971c09aa9735eb98459b17ec8b48932d24cbb931 // nonce:0x1d5f7444107bc02e980deda39d0fce21b06c9da4233a19cb11124cb5bfefc9ec // sign:0x8f92cee24906122e26c3cc6cbd72f851cfe2c9574aa03bf3371e5d506fbec68b2ad22bbbc19b00ed21d26ab5a6871507831e2c902d8ed8c33301addc2b57a7731b public static String getLoginKey(String address, String nonce, String sign) { StringBuilder sb = new StringBuilder(); StringBuilder append = sb.append(address).append(":").append(nonce).append(":").append(sign); return sha3(append.toString()); } public static String sha3(String str) { Keccak.DigestKeccak kecc = new Keccak.Digest256(); kecc.update(str.getBytes(StandardCharsets.UTF_8)); return Numeric.toHexString(kecc.digest()); } }